我有一个表event_sessions,其中包含一个session_submitted_by ID 和一个session_submitter_type。我需要根据 session_submitter_type 的内容将 session_submitted_by 加入两个不同表之一。
我不能只在两个表上执行 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 的情况下对其进行编码?