如何在不同的表中查找相同的列

时间:2013-10-17 14:43:51

标签: sql duplicates

我有两个表,每个表都有多列。

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


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

我想检查col1col3是否相同。那就是:所有的值匹配,用sql确定?

我不想使用except而且我也不想区分两列并检查它是否为零。

有更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

我错过了什么吗?你不能一起加入这些表并进行比较吗?

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

答案 1 :(得分: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

这将为您提供所有记录,其中任何一列的值之一在另一个表中不存在。