2013-03-19 2 views
0

Запрос 1:Сравнение результатов запроса

select name,trans from sids s where apt='KAUS'; 

Запрос 2:

SELECT id,transition_id from std_sid_leg where data_supplier='E' and airport='KAUS'; 

Значение имени таким же, что из идентификатора и транс с transition_id.Result набор 1 является подмножеством результирующего набора 2.Both таблицы имеют общие столбцы как apt = airport Если запрос сам по себе не работает, пожалуйста, укажите любой скрипт. Мне нужно сравнить выходные данные этих двух запросов и распечатать различия данных. Спасибо.

+0

это домашнее задание? для чего вы пришли сюда? –

ответ

0

Вы ищете комбинированное соединение слева и справа.
Это называется полным внешним соединением (в отличие от левого/правого внешнего соединения).
Выбрав только строки, в которых столбцы объединения имеют значение null, вы получите несоответствия; это называется антисоединением.

Полный внешний анти-Join выглядит следующим образом:

select s.*, ssl.* 
from sids s 
outer join std_sid_leg ssl on (s.name = ssl.id and s.trans = ssl.transition_id) 
where (s.name is null and s.trans is null) 
    or (ssl.id is null and ssl.transition_id is null) 
+0

эй, Йохан, я не мог получить и то, что сказал ты .. мог бы, пожалуйста, объяснить подробно. Спасибо – user2037445

+0

. На самом деле я спросил. У меня есть 2 запроса, которые выполняются на двух разных таблицах, имеющих разную схему. эти запросы нужно сравнивать, и разница должна отображаться. Это несколько похоже на сравнение наборов результатов, но проблема заключается в том, что запросы были получены на основе какого-либо условия, и, кроме того, схема для разных наборов результатов была другой. – user2037445

+0

Результат 1: «ACT», «ACT»; 'AUS3', 'ABI'; 'AUS3', 'AGJ'; 'AUS3', 'JCT'; Результат 2: 'ACT', 'ACT'; 'AUS3', 'ABI'; 'AUS3', 'AGJ'; OUTPUT: 'AUS3', 'JCT'; – user2037445

Смежные вопросы