聊天应用数据库

时间:2015-10-22 05:46:36

标签: mysql

我有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

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