SQL join объединяет 2 таблицы, имеющие общие столбцы, без использования ключевого слова join - PullRequest
0 голосов
/ 28 сентября 2018

t2 Я пытаюсь объединить 2 таблицы без использования ключевого слова соединения. У обеих таблиц одинаковые данные, но порядок другой.Я хочу отобразить информацию о ранге, аэропорту из обеих таблиц, а именно аэропортов2017 и аэропортов2010, когда их ранги отличаются в двух таблицах, в противном случае пропустите эту строку.Как я могу сделать это без использования ключевого слова соединения?

t1

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

Хотя я не уверен, почему вы хотите сделать это, этот запрос даст вам то, что вы хотите:

select airport, max(rank2017) as Rank2017, max(Rank2018) as Rank2018 from 
(
    select airport, airportrank as rank2017, 0 as rank2018 from airport2017
    union
    select airport, 0 as rank2017, airportrank as rank2018 from airport2018
) tabs
group by airport

Если вы хотите только те, где ранг изменился,добавить внизу:

having max(rank2017)<>max(Rank2018)
0 голосов
/ 28 сентября 2018

это будет работать так, как вы хотели, без использования соединения:

select a.rank,a.airport from t1 a, t2 b
where a.rank=b.rank

спасибо.

0 голосов
/ 28 сентября 2018

Я действительно не уверен, что это то, что вы ищете, но это найдет список различий в двух таблицах, которые имеют столбцы col_a и col_b:

    WITH
    aset AS
        (SELECT col_a, col_b FROM table_a
         MINUS
         SELECT col_a, col_b FROM table_b),
    bset AS
        (SELECT col_a, col_b FROM table_b
         MINUS
         SELECT col_a, col_b FROM table_a)
SELECT 'A unique records' AS TYPE, a.*
  FROM aset a
UNION ALL
SELECT 'B unique records' AS TYPE, a.*
  FROM bset a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...