我有一個表,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