2012-08-12 67 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