我不确定该 join 语句是否以正确的方式编写:
<?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";
}
?>
这是编写 join 语句的最有效方法
最佳答案
您的查询编写正确,但您可以通过在comment_id上指定表来改进它,为了更好的返回,我建议您指定您想要返回的列,我还将使用“字符串”之外的变量,因为它是一个数值(我想你省略了单引号,例如...
$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."";
关于php - mysql php join 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019058/