Как я могу выполнить объединение и левое соединение в одном операторе выбора? - PullRequest
0 голосов
/ 20 июня 2019

Предисловие: Я новичок в SQL и пока не знаю многого, но пытаюсь научиться.

Я хочу объединить две таблицы (одну со старыми данными и одну с новыми данными--у каждого поля одинаковые).

Затем я должен был присоединиться влево с помощью 'ID'.

Код ниже - это то, что я пробовал, но это не сработало.

SELECT TOP 10 *
FROM    clients
LEFT JOIN new_data
(
    SELECT * FROM old_data
    UNION 
    SELECT * FROM new_data
)
ON clients.cust_id = new_data.cust_id;

Ошибка SQL [500150] [HY000]: Amazon Ошибка установки / закрытия соединения: не подключено.

1 Ответ

1 голос
/ 20 июня 2019

Вам нужен псевдоним таблицы:

SELECT TOP 10 *
FROM clients c LEFT JOIN 
     (SELECT * FROM old_data
      UNION ALL 
      SELECT * FROM new_data
     ) d
     ON c.cust_id = d.cust_id;

Примечание: я изменил UNION на UNION ALL, чтобы он не требовал дополнительных затрат на удаление дубликатов.Если вы действительно хотите удалить дубликаты, сохраните UNION.

...