2016-02-11 32 views
0

我有這個兩個表:SQL不平等查詢

table1的

id   column1  column2 
1   name1   name2 
2   name2   name2 
3   name3   name3 
4   name4   name4 
5   name5   name5 

表2

id   table1_id  column2 
1   1    name1 
2   3    name3 

我想加入這個兩代表並得到所有的數據從table1不是在table2。結果應該是這樣的:

id   column1  column2 
2   name2   name2 
4   name4   name4 
5   name5   name5 

我在問什麼是正確的sql查詢。 謝謝。

+0

根據哪些列獲取table1中不在table2中的所有數據? – RubahMalam

回答

0

你不需要在這裏加入表,請使用NOT EXISTS對錶2與子查詢表達式:

select * from table1 t1 where NOT EXISTS (select 1 from table2 where table1_id=t1.id); 

或者你可以LEFT JOIN表2,選擇行,其中table2.id爲空:

select t1.* from table1 t1 
left join table2 t2 on t2.table1_id=t1.id 
where t2.id is null;