我有一个连接选择所有从我下面的用户和朋友的帖子与使用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