2011-12-22 65 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