2011-12-22 67 views
0
SELECT POSTS.* 
FROM POSTS 
LEFT JOIN SUBSCRIBERS 
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID 
WHERE POSTS.AUTHORID = ? 
OR SUBSCRIBERS.SUBSCRIBERID = ? 
ORDER BY POSTID DESC 
LIMIT ? 

以上是我使用的查询,这将选择从用户订阅的配置文件职位。现在这工作正常,但现在我想从另一个表中抓另一列。获得价值从第三表

在我的第三张表USERS中,我有一个我想访问的“AVATARID”。

在我的查询循环中,它查询了帖子作者和帖子正文的用户名。我想要它做的也是回应写这篇文章的用户的avatarID。我试图在我的while循环中添加另一个查询,但是我发现这个马虎,而且它也不起作用:S

所以,简单的问题:如何从表中访问AvatarID具有USERID来自帖子的AUTHORID?

+0

你只需要添加另一个'内join' – zerkms 2011-12-22 02:55:03

回答

3

喜欢的东西...

SELECT POSTS.*, USERS.AVATARID 
FROM POSTS 
LEFT JOIN SUBSCRIBERS ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID 
JOIN USERS ON POSTS.AUTHORID = USERS.USERID 
WHERE POSTS.AUTHORID = ? 
OR SUBSCRIBERS.SUBSCRIBERID = ? 
ORDER BY POSTID DESC 
LIMIT ? 
+0

这很好,除了它应该是'INNER',不'LEFT' – zerkms 2011-12-22 02:56:00

+1

另外我建议指定要等领域从POSTS表,而不是使用POSTS。*,但它不会停止查询工作 – SpoonNZ 2011-12-22 02:56:31

+0

或如果每个帖子必须有一个现有作者,则为INNER JOIN。 – tvanfosson 2011-12-22 02:56:50