Подтвердить что ты не робот

Как выбрать различное значение из нескольких таблиц

Мне нужно получить различные значения из 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, но они не подключены, поэтому я не могу использовать это.

4b9b3361

Ответ 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