我的查询范围,但这是我现在的那个:
SELECT `comment`.messageID, `comment`.message, `comment`.username, `comment`.messageailmentID, Items.ItemID
FROM `comment`, Items
WHERE varItemID = `comment`.messageailmentID
(使用Dreamweaver,varItemID基本上是$ _GET ['Items.ItemID'])
编辑:例如,用户点击一个项目,将项目带到itemdetails.php?ItemID = 8。当他们发表评论时,会将Items.ItemID添加到comment.messageailmentID。
表格列的重要部分是:
项目:ItemID
评论:CommentID,message,comment.username,messageailmentID(这是页面ItemID)
varItemID不是列,而是$ _GET ['ItemID'],在此查询中甚至可能不需要它,因为它是在另一个查询上完成的。
答案 0 :(得分:1)
您的查询正在获取所有行。
您应该使用:
JOIN
子句。WHERE
子句,用于指定要获取的特定项目。试试这个:
SELECT
comment.messageID,
comment.message,
comment.username,
comment.messageailmentID,
Items.ItemID
FROM Items
LEFT JOIN comment
ON Items.ItemID = comment.messageailmentID
WHERE Items.ItemID = 42
使用左连接意味着即使没有注释,它仍将返回一行。如果您不想这样,请使用INNER JOIN。
答案 1 :(得分:0)
尝试以下
SELECT comment.messageID, comment.message, comment.username, comment.messageailmentID, Items.ItemID
FROM comment, Items
WHERE Items.ItemID = comment.messageailmentID and Items.ItemID = ". $_GET['Items.ItemID']
答案 2 :(得分:0)
谢谢你们帮助我找出自己的愚蠢!我使用的查询有效:
SELECT `comment`.messageID, `comment`.message, `comment`.username
, `comment`.ItemID, Items.ItemID
FROM Items
INNER JOIN `comment`
ON Items.ItemID = `comment`.ItemID
WHERE Items.ItemID = varItemID
varItemID
也是$_GET['ItemID']
。