SQL查询两个表

时间:2013-09-13 09:43:52

标签: sql

我有以下两张表......

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&的'Messages'中的行。 6.对于'dick',1&而对于'哈里',1& 8。

希望这是有道理的!

2 个答案:

答案 0 :(得分:2)

您可以使用以下查询:

SELECT ID 
FROM Messages 
WHERE ID NOT IN (
    SELECT ID 
    FROM MessagesRead 
    WHERE UserName = 'your_input_name');

答案 1 :(得分:1)

你可以这样做:

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

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

请注意,为简单起见,我使用了WebSqlite数据库。