我有一個連接選擇所有從我下面的用戶和朋友的帖子與使用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)? 基本上,也選擇從我的所有帖子?不重複任何數據。
我有一個連接選擇所有從我下面的用戶和朋友的帖子與使用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)? 基本上,也選擇從我的所有帖子?不重複任何數據。
如果你基本上要在一個表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會更好
我沒有任何辦法來測試這一點,但我會假設預期下將工作:
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)
這不起作用,但謝謝你的嘗試! – user1592953 2012-08-12 05:22:23
你的意思是:「不重複任何數據。」 – 2012-08-12 05:36:50