如何 select 两个表的不同值?

How can I select the distinct value of two tables?

我不确定是否可行,但我想 select 两个表列的不同值。

像这样考虑表 1:

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

和 table2 喜欢:

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

我想要的输出是:

AAA
BBB
CCC

显然是这样的:

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

不行。

SQLFiddle

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

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

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

SELECT col1 FROM table1 UNION SELECT col1 FROM table2

一个简单的 UNION 就可以解决问题

SELECT col1 FROM table1 
UNION 
SELECT col1 FROM table2;

不需要使用 DISTINCT 关键字,因为 UNION 已经处理了重复项。

仅供参考,如果您使用 UNION ALL 将不再处理重复项,那么您需要使用 DISTINCT