2015-10-22 175 views
0

我有3个表 用户(USER_ID,名) 线程(thread_id单,DATE_TIME) 用户(subscriber_id,thread_id单) 用户ID是从用户表的外键我怎样才能得到2个specefic用户线程,我做这样的事情,但它给我的空白行聊天应用程序数据库

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 

回答

1

我将强调这是造成空集结果查询的一部分:

WHERE s.subscriber_id = 1 AND s.subscriber_id =2 
         ^really? 

您要求MySQL返回记录,其中subscriber_id12。这没有任何意义。在改正后的查询下面我已经改变了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 
1

您应该检查你的查询作为@Tim Biegeleisen说。

+0

@TimBiegeleisen当我写我的答案时,没有其他的答案,我很抱歉,你想让我删除我的答案,因为你猜你投票了吗? –

+0

编辑我的答案先生。 –

+0

你不需要删除它:-) –