Как выбрать различное значение из нескольких таблиц
Мне нужно получить различные значения из 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
, но они не подключены, поэтому я не могу использовать это.
Ответы
Ответ 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 ║
╚════════╝
Ответ 2
SELECT city FROM A
UNION DISTINCT
SELECT city FROM B
UNION DISTINCT
SELECT city FROM C