Получите полное соединение в большом запросе Google, сохраняя комбинацию всех частот в большом запросе, давая мне только левое соединение для всех видов соединения - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь объединить 2 таблицы, используя Id так, чтобы присутствовала частота всех комбинаций. Но когда я использую соединение (слева, справа), я все еще получаю вывод внутреннего соединения или соединения слева.

это таблица a

enter image description here

b enter image description here

Я ожидаемый результат

enter image description here

Я попробовал фактический код

select 
    act.action, 
    dvr.dateofdel, 
    dvr.output   
FROM internal.actions as act 
Right join internal.deliveries as dvr 
    ON dvr.id= act.id 

Я попробовал несколько соединений, но результат все тот же ..

1 Ответ

1 голос
/ 13 марта 2020

Ваш запрос не совпадает с вашими примерами данных.

Но, основываясь на вашем заявлении о проблеме, я подозреваю, что вы хотите:

select 
    act.ID_log, 
    act.ID_send_message, 
    act.action_date, 
    act.action,act.ID_email, 
    dvr.delivery_date, 
    act.email   
from internal.actions as act 
left join internal.deliveries as dvr 
    on  dvr.ID_send_message= act.ID_send_message  
    and dvr.delivery_date >= '2017-01-01'
    and dvr.delivery_date <  '2018-01-01'
where act.ID_send_message != 0

Это принесет все записи из act, которые выполнить условие в пункте where вместе с информацией, поступающей из dvr; если в dvr нет совпадений, соответствующие столбцы будут показывать значения null. Важной частью запроса является то, что все условия в таблице left join должны быть указаны в предложении on в join (а не в предложении where).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...