WHERE
절의 일부를 만드는 가장 간단한 방법은 JOIN
의 결과에 따라 달라 집니까? 나는 그것이 매우 모호하고 혼란 질문 실현, 그래서 나를 단순히 내가 달성하기 위해 노력하고 무엇을 보여줄 수 : 구문-I는 CodeIgniter의를 사용하고있는 물음표가 유효하지 참고,일치하는 경우 WHERE 절
SELECT m.member_id, m.first_name, m.last_name
FROM cal_form_answers a
INNER JOIN cal_form_elements e
USING(element_id)
INNER JOIN cal_forms f
USING(form_id)
LEFT JOIN members m
USING(member_id)
WHERE f.org_id = ?
AND m.org_id = ?
AND e.form_id = ?
GROUP BY a.member_id
ORDER BY a.member_id
우선하는 이를 바운드 매개 변수로 사용합니다.
라인 10 (AND m.org_id = ?
)은 실제로 LEFT JOIN
이 무언가를 찾았는지 여부에 달려 있습니다. members
테이블에 일치하는 항목이 없으면 Line 10이 필요하지 않게됩니다. 사실 그것은 문제가됩니다. 내가 라인 10 에 의해 결과를 제한하고 싶습니다가 일치하지 않는 경우 회원 테이블. 그 경우에, 나는 단지 WHERE
절의 그 부분을 무시하고 싶습니다.
나는 구문을 어떻게 작동시키는 지 확실하지 않지만 서브 쿼리를 사용하여이를 수행 할 수 있다고 생각합니다. 다른 방법이 있습니까? 그렇다면이 결과를 어떻게 얻을 수 있습니까? 다른 방법이없는 경우 누군가이 상황에 대한 하위 쿼리 구현을 보여줄 수 있고 어떻게 작동하는지 설명 할 수 있습니까?
감사합니다.
그러면 조인 조건 부분에 이러한 조건을 지정하지 않는 이유는 무엇입니까? – zerkms