我有3张桌子 用户(user_id,名称) thread(thread_id,date_time) 订阅者(subscriber_id,thread_id) 订阅者ID是来自用户表的外键如何获得2个specefic用户的线程,我正在做这样的事情,但它给了我空行</ p>
SELECT t.thread_id, s.subscriber_id, u.user_id
FROM subscribers s
LEFT JOIN thread t ON t.thread_id = s.thread_id
LEFT JOIN user u ON s.subscriber_id = u.user_id
WHERE s.subscriber_id = 1 AND s.subscriber_id = 2
答案 0 :(得分:1)
你应该检查你的查询@Tim Biegeleisen说。
答案 1 :(得分:0)
我将突出显示导致空集结果的查询部分:
WHERE s.subscriber_id = 1 AND s.subscriber_id =2
^ really?
您要求MySQL返回subscriber_id
同时为1
和 2
的记录。这没有任何意义。在下面更正的查询中,我更改了WHERE
条件以使用OR
代替AND
:
SELECT u.user_id, u.name, t.thread_id
FROM users u INNER JOIN susbscribers s ON u.user_id = s.subscriber_id
INNER JOIN thread t ON s.thread_id = t.thread_id
WHERE u.user_id = 1 OR u.user_id = 2