2012-08-12 64 views
1

我有一個連接選擇所有從我下面的用戶和朋友的帖子與使用MySQL加入

SELECT  * 
FROM    posts a 
LEFT JOIN relationships b 
ON a.user_id = b.user_2 
WHERE   b.user_1 = $user_id AND 
 b.status IN (1,3,4) 

我怎樣才能得到這個查詢還選擇了所有的帖子,其中a.user_id = $ user_id(我的ID)? 基本上,也選擇從我的所有帖子?不重複任何數據。

+0

你的意思是:「不重複任何數據。」 – 2012-08-12 05:36:50

回答

0

如果你基本上要在一個表2個的查詢結果使用聯合查詢。您將需要修復的WHERE子句中的第二個查詢是正確的,但怎麼樣像

SELECT * 
FROM posts a 
LEFT JOIN relationships b 
ON a.user_id = b.user_2 
WHERE b.user_1 = $user_id AND 
b.status IN (1,3,4) 
UNION DISTINCT 
SELECT * 
FROM posts a 
WHERE a.user_id = $user_id (my id) 

我也會質疑你的左的使用加入 - 我認爲一個INNER JOIN會更好

0

我沒有任何辦法來測試這一點,但我會假設預期下將工作:

SELECT * 
FROM posts a 
LEFT JOIN relationships b 
ON a.user_id = b.user_2 
WHERE b.user_1 = $user_id AND 
(b.status IN (1,3,4) OR a.user_id = $user_id) 
+0

這不起作用,但謝謝你的嘗試! – user1592953 2012-08-12 05:22:23