Моля, разгледайте следната заявка:
SELECT distinct a.*, coalesce (r.email,r2.email) as "sign_in_email"
into #adobe_prep
FROM dbo.adobe
left join
dbo.registration r ON (a.user_id = r.up_user_id)
left join
dbo.registration r2 ON (a.user_id = r2.entity_id)
По принцип се опитвам да съвпадна с a.user_id с r.up_user_id и ако няма съвпадение с up_user_id, след това съвпадение entity_id. Въпреки това, няма условие за това изявление, затова получавам дубликати, защото понякога a.user_id = r.up_user_id, но също a.user_id = r2.entity_id (само за различна стойност). Можете ли да помогнете при добавянето на условие, че втората ляво присъединяване трябва да се случи само ако a.user_id <> r.up_user_id?
Отговори:
1 за отговор № 1Но вие сте написали самия отговор! Опитайте се да добавите условието, което сте написали с думи:
and a.user_id <> r.up_user_id
Като този:
select distinct a.*, coalesce (r.email,r2.email) as "sign_in_email"
into #adobe_prep
from dbo.adobe
left join dbo.registration r ON (a.user_id = r.up_user_id)
left join dbo.registration r2 ON (a.user_id = r2.entity_id and a.user_id <> r.up_user_id)