I need a help on sql database side. And i have
table 1 : ENTITY_TYPE
entity_type_id entity_name
1 Task
2 Page
3 Project
4 Message
5 User
and table 2 : MESSAGE , that contains message from each entity values like
message_id entity_type owner_tableid message
1 1 12 A message on task level
2 3 14 A message on project level
and I want select these message according to each entity type and details from its owner table using ‘owner_tableid’ ie a query like….
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
Which is best method to solve this issue on single procedure. Any idea ?? Now I am using IF clause for each entity…
You can’t parameterise the tables involved in a query (so you can’t put a table name in a variable and expect that to be used either).
One way to do it is as a chain of left joins:
If you want values from these tables to appear in a single column in the result, use a
COALESCEacross all of the values, e.g.