我需要sql數據庫端的幫助。和我有加入sql表的CASE
表1:ENTITY_TYPE
entity_type_id entity_name
1 Task
2 Page
3 Project
4 Message
5 User
和表2:MESSAGE,它包含消息從每個實體值等
message_id entity_type owner_tableid message
1 1 12 A message on task level
2 3 14 A message on project level
,我想根據每個實體類型選擇這些消息和來自其所有者表的詳細信息,使用'owner_tableid'即查詢,例如....
select * from MESSAGE JOIN
case entity_type when 1 then taskTable
when 2 then pageTable
when 3 then projectTable
when 4 then MessageTable
when 5 then UserTable
哪種方法是解決單個過程中的問題的最佳方法。任何想法 ??我現在用IF子句爲每個實體...
我是說發現這個佈局難以閱讀的唯一一個?這就像嘗試閱讀Jenga拼圖上的代碼。 +1,因爲解決方案是一個可行的答案;只是很難閱讀。 – Thomas
我喜歡這個解決方案。但是,如果有很多實體類型,我們希望創建一個非常大的查詢。如果在查詢中使用view,pivot ...等任何簡單的方法。 –