JOIN 키워드를 사용할 때 조건부를 사용해야하는지 알고 싶습니다.JOIN 키워드를 사용할 때 두 조건을 추가하는 것이 좋은 방법입니까?
날짜별로이 결과 집합을 필터링하려고하는데 WHERE 절을 사용하는 날짜에 대한 비용이나 수입이 없더라도 나열된 모든 분기를 가져올 수 없습니다. 이 경우 더 나은 방법이 있습니까?
SELECT
Branches.Name
,SUM(Expenses.Amount) AS Expenses
,SUM(Incomes.Amount) AS Incomes
FROM
Branches
LEFT JOIN Expenses
ON Branches.Id = Expenses.BranchId AND Expenses.Date = '3/11/2010'
LEFT JOIN Incomes
ON Branches.Id = Incomes.BranchId AND Incomes.Date = '3/11/2010'
GROUP BY Branches.Name
그럼 'Expenses.Date ='3/11/2010 'OR Expenses.Date IS NULL'라고 쉽게 말할 수 있습니다. 이것은 실제로 트릭이 아니며 논리적 인 행동입니다. –
절대적으로 맞으면, 'ON'과 'WHERE'사이의 외부 조인에는 미묘한 차이가 있습니다. +1 – incarnate
@Paul : Expenses.Date가 Null을 허용하지 않는 경우에만. –