MySQL的PHP连接语句
问题描述:
我不知道如果加入语句以正确的方式是writen:MySQL的PHP连接语句
<?php
功能generateComment($ commentID) {
$avatar_Q=mysql_query("
SELECT * FROM comments com
INNER JOIN users us ON com.user_id=us.user_id
WHERE comment_id=$commentID // will that $commentID be red in that query string or will it treat it as a string "commentID"
");
if($row=mysql_fetch_array($avatar_Q))
{
$userName=$row["us.user_name"]; // do I refer to the fields like that
$avatarPath=$row["us.avatar"];
$avatarRep=$row["us.reputation"];
$message=$row["com.comment"];
$date=$row["com.date"];
}
mysql_close();
if(!isset($avatarPath))
{
$avatarPath="blank picture";
}
>
?这是编写联合声明的最有效方式吗?
答
您的查询写入正确,但可以通过指定comment_id上的表来改进它,为了更好地返回,我建议您指定要返回的列,还要使用“string”之外的变量,因为它是一个数值(我想你忽略了单引号像...
$sql = "Select com.command_it, etc
FROM ..... WHERE com.comment_id = ".$commentID."";
如果否则com.comment_id
是文本或varchar必须使用单引号,如:
$sql = "Select com.command_it, etc
FROM ..... WHERE com.comment_id = '".$commentID."'";
而且这种方式你只会得到有用户的行和评论,如果一个用户如果希望用户也没有意见,你不检索用户...
他有没有意见,你必须使用一个LEFT JOIN
$sql = "SELECT com.comment_id, etc FROM users us
LEFT JOIN comments com ON com.user_id=us.user_id
WHERE com.comment_id=".$commentID."";
答
不确定wh在你用这条线做
WHERE comment_id=$commentID // will that $commentID be red in that query string or will it treat it as a string "commentID"
“);
但是你需要指定comment_id
来自哪个表,说comments
,那么你可能会做这样的事情
$avatar_Q=mysql_query("SELECT * FROM comments com
INNER JOIN users us ON com.user_id=us.user_id
WHERE com.comment_id=$commentID");
答
,如果这是最好的办法不是SUR,但你可以尝试mysqlslap一个MySQL数据库与它。将它与左连接和其他类型的连接进行比较,看看哪一个最适合您的情况。 MySQL全是关于掌。的。
我想一般把'AS'放在那里只是为了易于理解,并且对插入的字符串'com.comment_id = {$ commentID}'进行大括号处理。 – CD001