내 데이터베이스에서 어떤 사람들이 내 뉴스 레터에서 구독을 취소했는지, 어떤 사람들은 나쁜 전자 메일 주소를 가지고 있는지, 어떤 사람은 없는지 결정하려고합니다. iUnsub과 iBadEmail 모두를위한 활동 활동이 있습니다.잘못된 조인 - 결과 집합 당 1 행
내가 쓴 코드는
select distinct
n.id,
'Unsubscribe' =
case
when a.activity_type = 'iUnsub' then '1'
end,
'Bad Email' =
case
when a.activity_type = 'iBadEmail' then '1'
end
from name n
left join activity a on n.id = a.id
where n.id in
(
'1002421',
'1005587',
'1009073',
'1001102'
)
내가받을 결과는 다음과 같은 각 ID 나에게 하나 개의 행을 줄
id Unsubscribe Bad Email
1001102 NULL NULL
1002421 NULL NULL
1002421 1 NULL
1005587 NULL NULL
1005587 1 NULL
1009073 NULL 1
1009073 NULL NULL
난에 코드 싶습니다 각 ID에 대한 2 개 결과를 생성했다
id Unsubscribe Bad Email
1001102 NULL NULL
1002421 1 NULL
1005587 1 NULL
1009073 NULL 1
코드를 검증하는 데 사용할 수있는 입력 데이터의 완전한 작은 예제를 제공하십시오. 이 시점에서 우리가 볼 수있는 것은 코드와 출력물 뿐이며 조인의 위치와 잘못된 작업을 알려주는 것은 아닙니다. –
내부 조인 또는 다른 논리로 시도하면 왼쪽 조인은 항상 결과 집합의 null 값 수를 늘립니다. –