Мне нужна помощь на стороне базы данных sql. И у меня естьCASE для соединения таблиц sql
таблица 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 ... и т. Д. В запросе. –