2013-10-17 51 views
-1

我有兩個表,每個表都有多個列。如何在不同的表中找到相同的列

+------+-------+--+ 
| Col1 | Col2 | | 
+------+-------+--+ 
| 1 | 1231 | | 
| 2 | 123 | |table 1 
| 3 | 14124 | | 
+------+-------+--+ 


+------+-------+--+ 
| Col3 | Col4 | |table 2 
+------+-------+--+ 
| 1 | 1231 | | 
| 2 | 323 | | 
| 3 | 14324 | | 
+------+-------+--+ 

我要檢查是,如果col1col3是相同的。那就是:所有的值都匹配,要用sql來確定?

我不想使用except而且我也不想對兩列進行區分並檢查它是否爲零。

有沒有更有效的方法來做到這一點?

+0

你能分享你試過的那些查詢,並解釋你爲什麼不想(或「不能」)使用它們嗎?你的目標是什麼? – Jeroen

+0

我使用Select(table1.col1-table2.col3)作爲不同於table1,table2' – shiven

回答

1

我錯過了什麼嗎?你不能一起加入表並比較嗎?

select 
... 
from table1 
inner join table2 
on table1.col1 = table2.col3 
+0

我不希望共同的價值觀,內部聯接會給我關鍵的兩個表的連接,我想檢查是否列是否相同 – shiven

+0

@Shiven:我不明白,那個查詢會給你列匹配的行。你說:「我想檢查是否col1和col3是相同的」。 – Andrew

0

可以outer join他們和過濾器上的空結果

select table_1.col1, table_2.col3 
from table_1 full outer join table_2 on table_1.col1, table_2.col3 
where table_1.col1 is null 
    or table_2.col3 is null 

這會給你任何地方列的值中的一個不存在於其他表中存在的所有記錄。

相關問題