我需要从 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
城市的顺序对我来说并不重要,我只需要拥有它们,每个城市应该只有一个代表。
有什么想法吗?我想在 JOIN
中使用 id's
但没有连接所以我不能使用它。
最佳答案
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 ║
╚════════╝
关于mysql - 如何从多个表中选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15310782/