두 테이블 DEPARTMENT 및 BUDGET이 있습니다. BUDGET 테이블에 없더라도 모든 부서를 반환하고 싶습니다. 다음 쿼리를 사용하고 있지만 예상대로 작동하지 않는 것 같습니다. 절은 다음 내가 LEFT JOIN을 사용하고 있더라도 모든 기록을 반환하지 않습니다 어디에서 사용하는 경우왼쪽 조인은 모든 레코드 또는 없음을 반환합니다.
SELECT dept_name FROM department
LEFT JOIN budget ON budget.dept_id = department.dept_id
AND budget.division = 5 AND budget.year = 2015
위의 쿼리는 모든 부서에서 부서뿐 아니라 부문 5를 반환합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
SQL 바이올린 내가 원하는 쿼리를 발견처럼 편집이 다시
이 보이는
http://sqlfiddle.com/#!2/d4b07/12
을 추가했습니다. 이것은 위에 게시 된 SQL fiddle에서 'Legal'중 하나의 결과를 반환하고 이것이 내가 원하는 것입니다.
SELECT DISTINCT D.name, B.budget_year FROM department D
LEFT JOIN budget B ON D.ID = B.department_id
AND D.division_id = B.division_id
AND B.budget_year = 2015
WHERE D.division_id = 11
'where' 절 대신'on' 절에'budget' 조건을 넣으십시오. –
'where' 대신'on' 절에서 이미'budget'을 사용하고 있지만 작동하지 않습니다. –
샘플 데이터와 원하는 결과로 질문을 편집해야합니다. 귀하의 질문에 일관성이 없습니다. –