0

我有以下两个表...

Messages
ID   Title   Body
1    T1      B1 
4    T2      B2   
5    T3      B3  
6    T4      B4 
8    T5      B5  

.

MessagesRead
UserName    ID
tom         1 
tom         4 
tom         8 
dick        5 
dick        6 
dick        8 
harry       4 
harry       5 
harry       6 

我需要设计一个查询,当给定的人的 ID 不匹配时,它只返回行。例如...

为“tom”运行此命令将返回 ID 为 5 和 6 的“消息”中的行。对于“dick”,1 和 4。对于“harry”,1 和 8。

希望这是有道理的!

4

2 回答 2

2

您可以使用以下查询:

SELECT ID 
FROM Messages 
WHERE ID NOT IN (
    SELECT ID 
    FROM MessagesRead 
    WHERE UserName = 'your_input_name');
于 2013-09-13T09:49:53.657 回答
1

你可以这样做:

SELECT * 
FROM messages 
WHERE id NOT IN (
    SELECT mr.id 
    FROM messagesread mr 
    WHERE username = 'tom'
)

工作 sqlfiddle http://sqlfiddle.com/#!7/c7b02/1

请注意,为了简单起见,我使用了 WebSqlite db。

于 2013-09-13T09:50:59.813 回答