2012-10-29 63 views
2

我有這樣的場景,有2個表table_1和table_2。這兩個表都有一個名爲column_1的公共列(沒有foreign_Key約束!!)。 Table_1可以有一些不存在於table_2中的額外行(換句話說,table_2是table_1的一個子集)。我想列出僅存在於table_1中但不存在於table_2中的所有項目。 請幫忙寫同樣的sql查詢。 在此先感謝。根據一些條件查詢表

回答

3
SELECT a.* 
FROM table1 a 
     LEFT JOIN table2 b 
      on a.column_1 = b.column_1 
WHERE b.column_1 IS NULL 

如果這兩個表不與對方的關係,更好地對table1.column_1添加一個索引和table2.column_1所以它不會需要全表掃描(這會降低性能

1
select * from table1 
inner join table2 on table1.column1=table2.column1 
0
select a.* from table1 a left outer join table2 b on a.col1=b.col1;