我需要从3个表中获取不同的值。
当我执行此代码时:
select DISTINCT(city) from a,b,c
我收到一条错误,指出我的专栏“城市”含糊不清。
我也试过这个:
select DISTINCT(city) from a NATURAL JOIN b NATURAL JOIN c
使用此代码,我的表格中没有任何内容。
让我向您展示我想要做的事情的例子:
TABLE A TABLE B TABLE C
id | city id | city id | city
1 | Krakow 1 | Paris 1 | Paris
2 | Paris 2 | London 2 | Krakow
3 | Paris 3 | Oslo
4 | Rome
我需要得到这样的结果
RESULTS
city
----
Krakow
Paris
Rome
London
Oslo
城市的秩序对我来说并不重要我只需要拥有它们,每个城市应该只有一个代表。
有什么想法吗?我想在id's
中使用JOIN
,但没有连接,所以我无法使用它。
答案 0 :(得分:51)
UNION
关键字将在结果列表中返回unique
条记录。指定ALL
(UNION ALL)时,将在结果集上保留重复项,OP不需要。
SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC
RESULT
╔════════╗
║ CITY ║
╠════════╣
║ Krakow ║
║ Paris ║
║ Rome ║
║ London ║
║ Oslo ║
╚════════╝
答案 1 :(得分:3)
SELECT city FROM A
UNION DISTINCT
SELECT city FROM B
UNION DISTINCT
SELECT city FROM C