두 개의 테이블 : 프로그램 및 부서가 있습니다.MySQL 조건부 "ON"문
각 프로그램은 하나의 부서에 속합니다. 프로그램 테이블에는 override_dept_id라는 옵션 필드가 있습니다. 이 필드가 null이 아닌 경우 department_id 필드의 값보다 우선합니다.
내 쿼리는 override_dept_id 필드가 null인지 여부를 확인할 수 있어야합니다. 이 결과는 departments 테이블의 조인에 어떤 키가 사용되는지 결정합니다. 몇 가지 방법을 시도했지만 올바르게 작동하지는 않습니다. 여기
는 내가 뭘하려고 오전입니다 :SELECT p.id, p.program, p.full_name, d.department
FROM programs p
LEFT JOIN departments d
CASE
WHEN p.override_dept_id IS NOT NULL THEN (ON p.override_dept_id = d.id)
ELSE (ON p.department_id = d.id)
END
ORDER BY p.full_name ASC
전에 넣어 case 문 –
구문은 ['... table1 JOIN table2 ON condition ...'] (https://dev.mysql.com/doc/refman/5.7/en/join.html)입니다. – axiac