2012-04-09 105 views
1

我需要从2代表在我的数据库中选择数据 - 评论和用户。这是这些表的结构:从MySQL的2个表中选择的数据,加入它

评论

commentID | commentDateAndTime | imageID | userID |评论

用户

用户ID |用户名

,我需要选择两个表中的所有数据,加入它的用户ID,其中图像标识应等于$imageID。我尝试了以下SELECT声明:

return json_encode(select(" 
    SELECT 
    commentDateAndTime, 
    imageID, 
    userID, 
    COMMENT, 
    username 
    FROM users 
    JOIN comments 
    ON comments.userID = users.userID 
    WHERE comments.imageID = $imageID 
    GROUP BY comments.comment 
")); 

但我没有收到任何数据。

有什么建议吗?

+5

删除'集团BY' – diEcho 2012-04-09 08:27:14

+2

你们为何需要的群体?看起来不像你使用它。 – 2012-04-09 08:28:12

+1

尝试删除GROUP BY comments.comment – yAnTar 2012-04-09 08:29:00

回答

4

你为什么要使用GROUP BY,如果你需要的所有结果。

SELECT users.* , comments.* 
FROM users JOIN comments ON comments.userID = users.userID 
WHERE comments.imageID = $imageID 
2

MySQL不会把自动连接(从this page“的FROM [...]子句指示表或从中检索行的表如果你命名多个表,你正在执行一个连接“)。

而且,因为有您需要通过在表名前是具体哪一个两个userID列。

所以,你的查询可以是这样的:

SELECT commentDateAndTime, imageID, users.userID AS userID, comment, username 
FROM comments, users 
WHERE comments.userID = users.userID AND comments.imageID = $imageID