如何选择两个表的不同值?

时间:2015-03-20 21:03:05

标签: mysql sql distinct

我不确定它是否可行,但我想选择两个表格列的不同值。

将table1视为:

╔══════╗
║ col1 ║
╠══════╣
║ AAA  ║
║ AAA  ║
║ BBB  ║
║ BBB  ║
╚══════╝

和table2像:

╔══════╗
║ col1 ║
╠══════╣
║ AAA  ║
║ BBB  ║
║ CCC  ║
║ CCC  ║
╚══════╝

我想要的输出是:

AAA
BBB
CCC

显然是这样的:

SELECT DISTINCT table1.col1 , table2.col1 FROM table1 , table2;

没有工作。

SQLFiddle

3 个答案:

答案 0 :(得分:4)

一个简单的UNION会做技巧

SELECT col1 FROM table1 
UNION 
SELECT col1 FROM table2;

无需使用DISTINCT关键字,因为UNION已处理重复项。

如果您使用UNION ALL,则不再处理重复项,那么您需要使用DISTINCT

答案 1 :(得分:2)

只需union即可完成工作,因为它会过滤掉重复的记录。

SELECT col1 FROM table1 UNION SELECT col1 FROM table2

答案 2 :(得分:1)

我通常不会进行子查询,但我认为这是其中一次:

SELECT DISTINCT col1
FROM (SELECT col1 FROM table1 UNION SELECT col1 FROM table2)