小编典典

如何从多个表中选择不同的值

sql

我需要从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'sJOIN但没有连接,所以我不能使用它。


阅读 218

收藏
2021-04-15

共1个答案

小编典典

UNION关键字将返回unique结果列表上的记录。当指定ALL
UNION ALL

)时,将在结果集上保留重复项,OP不需要这些重复项。

SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC

结果

鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽
鈺�  CITY  鈺�
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
鈺� Krakow 鈺�
鈺� Paris  鈺�
鈺� Rome   鈺�
鈺� London 鈺�
鈺� Oslo   鈺�
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
2021-04-15