2012-01-11 77 views
0

我有两个表格:COMMENTSUSERS。我将用户名保存在COMMENTS表中,但用户的头像详细信息应取自USERS表。多次查询多个表格

SELECT c.id, c.tarih, c.yorum, c.yorumcu, 
(SELECT avatarID FROM USERS WHERE Username=c.yorumcu) AS avatarID 
FROM COMMENTS c WHERE c.id = ? 

最后的问号被替换为NEWS_ID。 (例如news.php?id=5

我设法对此进行编码,但它只从数据库获取“最后评论”的详细信息,而不是全部。 (假设有5人在页面上发表评论,它只会得到最后一条(第5条)评论,而忽略其余部分。)

任何人都可以帮我吗?

Ps。 Yorumcu的意思是“评论者”。 COMMENTS.CommenterUSERS.Username是一样的。

回答

2

如果您的WHERE子句不是“WHERE c.news_id =?”,而不是“WHERE c.id =?” ?我假设c.id对每个评论都是独一无二的。

+0

现在我觉得很蠢。非常感谢。我正在检查评论ID而不是news_id。即将发疯... – Aristona 2012-01-11 08:41:26

0

试试这个:

select c.id, c.tarih, c.yorum, c.yorumcu, avatarID 
FROM COMMENTS,USERS 
where USERS.Username=c.yorumcu and c.id = ? 
+0

感谢您的努力。在将c.id更改为c.news_id后,上面的查询就像一个魅力。 – Aristona 2012-01-11 08:42:10

0

我认为COMMENTS.id是表注释唯一标识符?

如果是这样的话,那是逻辑,你只能得到1条评论。

您在COMMENTS表中是否有NEWSID的标识符? 然后你应该使用这个来检索多个评论。