Запрос для сравнения таблиц

Тема в разделе "Базы данных", создана пользователем stasdre, 13 июн 2012.

Статус темы:
Закрыта.
Модераторы: latteo
  1. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    Есть 2 таблицы вот такого вида:
    обе таблицы одинаковые, но могут содержать различные данные. Как сделать так чтобы, например при объединение 2-ух таких таблиц данные суммировались объединяясь по id, size и date. Пробывал с LEFT JOIN table1 (table1.id=table2.id AND table1.size=table2.size AND table1.date=table2.date ) но проблема в том что при таком запросе почем-то не выводятся данные которые не соответствуют условию JOIN.

    Грубо говоря нужно так что-бы данные который совпадают с условием суммировались, а вот те которые не совпадают вместо них ставилось NULL или выводились данные одной из таблиц
     
  2. fdgfdgfh

    fdgfdgfh Создатель

    Регистр.:
    30 май 2014
    Сообщения:
    27
    Симпатии:
    5
    1 способ.
    1. Создать подзапрос c идентификаторами (первичным ключом), которые отвечают требованиям table1.id=table2.id AND table1.size=table2.size AND table1.date=table2.date.
    2. Подставить данный подзапрос в секцию where id in и where id not in объеденив результаты

    2. способ.
    два запроса с взаимоисключающими элементами с объединением
     
  3. NDK13

    NDK13 Создатель

    Регистр.:
    31 авг 2012
    Сообщения:
    36
    Симпатии:
    14
    Надо использовать FULL OUTER JOIN а не LEFT JOIN
     
Статус темы:
Закрыта.