session_submitted_by ID とsession_submitter_typeを含むテーブルevent_sessionsがあります。session_submitter_type の内容に基づいて、session_submitted_by を 2 つの異なるテーブルのいずれかに JOIN する必要があります。
両方のテーブルで LEFT OUTER JOIN を実行して、コンテンツを返す方を選択することはできません。両方のテーブルに一致する ID が含まれている可能性があるためです。
これは、私が達成しようとしていることを示す不適切な SQL/疑似コードです。
SELECT es.event_session_id,
subu.first_name + ' ' + subu.last_name as submitted_by_name,
subu.email as submitter_email
FROM event_session es
CASE WHEN es.session_submitter_type = 'speaker'
THEN
LEFT OUTER JOIN speakers subu
ON subu.speaker_id = es.session_submitted_by
ELSE
LEFT OUTER JOIN users subu
ON subu.user_id = es.session_submitted_by
END
UNION に頼らずにこれをコーディングする方法について何か提案はありますか?