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

Discussion in 'Программирование' started by MAY, Dec 24, 2009.

  1. MAY

    MAY Активный участник

    5,589
    159
    Простая задача на MS SQL, но что то не получается :( времени в обрез, к утру нужен результат.
    Есть две таблицы, в каждоый по два столбца:

    таблица error
    __fio ________ pass
    пупкин 18 04 111111



    таблица reis
    ___pas _________mgh
    18 03 111111 внуково

    нужно сделать селект из этих двух таблиц в результате которого будут строки в которых нет одинаковых паспортных данных.
    пробовал вот так:
    select fio,pass,mgh from error,reis
    where error.pass<>reis.pas
    выдает хрень....87 тыс строк...а в каждой таблице по 200 и 300 строк всего.
    колонки pass и pas имеют в обоих таблицах значение char
    Помогите люди добрые :)
    чувствую что где то просто но не могу догнать где....
     
  2. panda-34

    panda-34 Активный участник

    1,589
    2
    select *
    from error
    where pass not in
    (select pass from reis)
    union all
    select * from reis
    where pass not in
    (select pass from error);
     
  3. Zuka58

    Zuka58 Активный участник

    4,541
    865
    SELECT error.fio, error.pass, reis.pas, reis.mgh
    FROM error FULL JOIN reis ON error.pass = reis.pas
    WHERE (error.pass IS NULL) OR (reis.pas IS NULL)

    з.ы. у MS SQL есть FULL OUTER JOIN. пишу из головы, т.к. проверить щас негде. но должно быть так
     
  4. MAY

    MAY Активный участник

    5,589
    159
    всем спасибо! Получилось!
    Респект и уважуха парни!