SELECT comments.comment, comments.title, userBase.uID, userBase.fname FROM comments JOIN userBase WHERE comment.ID=users.ID AND comments.uID='$uID' AND comments.title='$title'
但是,这只会在使用时向我提供评论数据库中的信息:
$row = mysql_fetch_row($result);
print_r($row);
答案 0 :(得分:1)
如果我理解你想要的是什么,这就是查询
SELECT comments.comment, comments.title, userBase.uID, userBase.fname
FROM comments
INNER JOIN userBase ON comment.ID=users.ID
AND comments.uID='$uID'
AND comments.title='$title'
无论如何,您的问题有几个问题:
comments
和userBase
是表格,不是数据库AND
条款之后有一个WHERE
,这根本没有意义comments.ID
与userBase.ID
等同吗?在这种情况下,您在注释中使用ID
键作为外键,这不是非常易读。您可能希望使用comments.user_id
修改:为了清楚起见,有一种替代的连接语法,它使用WHERE
关键字。您可以将上述内容重写为
SELECT comments.comment, comments.title, userBase.uID, userBase.fname
FROM comments, userBase
WHERE comment.ID=users.ID
AND comments.uID='$uID'
AND comments.title='$title'
但它不是SQL标准。它适用于MySQL,我也认为在SQLServer中,但我不完全确定其他数据库供应商。在任何情况下,您的查询的问题是您混合了两种不同的语法。
答案 1 :(得分:0)
尝试一下:
SELECT c.comment, c.title, u.uID, u.fname
FROM comments c, userBase u
WHERE c.ID = u.ID
and c.title = '$title'
and c.uID = '$uID'
我假设所有变量都已初始化并具有一定价值。对于主键,您不需要围绕值的'(引用)。此外,您需要选择是使用JOIN样式语句还是WHERE =样式语句。
以下是有关JOINS和WHERE =语句的更多信息。 http://www.w3schools.com/sql/sql_join.asp http://www.w3schools.com/sql/sql_where.asp
答案 2 :(得分:0)
内连接将为您提供满足连接条件的两个表中的所有行,此连接条件在on子句中指定(您已省略)。相反,左连接将为您提供连接中左表中的所有行(第一个表),以及右表中满足连接条件的所有行,右连接则相反。
我认为您在SQL中寻找的是:
SELECT comments.comment, comments.title, userBase.uID, userBase.fname
FROM comments INNER JOIN userBase ON comment.ID=users.ID
WHERE comments.uID='$uID' AND comments.title='$title'