咸鱼溜溜六 发表于 2023-9-14 12:07:02

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

我需要从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但没有连接,所以我不能使用它。
               
解决方案:
               


                该UNION关键字将返回unique结果列表上的记录。当指定ALL(
UNION ALL
)时,将在结果集上保留重复项,OP不需要这些重复项。
SELECT city FROM tableA
UNION
SELECT city FROM tableB
UNION
SELECT city FROM tableC
SQLFiddle演示

结果
鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽
鈺?CITY鈺?
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
鈺? Krakow 鈺?
鈺? Paris鈺?
鈺? Rome   鈺?
鈺? London 鈺?
鈺? Oslo   鈺?
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆
页: [1]
查看完整版本: 如何从多个表中选择不同的值