0

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 に頼らずにこれをコーディングする方法について何か提案はありますか?

4

1 に答える 1