我有一个表,event_sessions包含session_submitted_by ID和session_submitter_type。我需要根据session_submitter_type的内容将session_submitted_by加入到两个不同表中的一个表中。条件SQL 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 ALL?你在这两张牌桌上是否有任何记录? – makciook
是的,我的session_submitted_by ID值可能发生在发言者和用户表中......但不会是两个表中的同一个人。 – pter