我需要编写一个查询。 有3个表,一个主要和两个相关 例如:
main_table
id name
-- -------------
1 example
2 example2
join_table1
id main_table_id
-- -------------
1 1
join_table2
id main_table_id
-- -------------
1 2
如果main_table_id包含在join_table1中 我需要按join_table1.id排序,否则如果main_table_id包含在join_table2中,则 我需要按join_table2.id
排序任何想法如何进行此类查询
main_table_id可以在表join_table1或join_table2中
数据库 - SQL Server
答案 0 :(得分:2)
您应该合并coalesce和左连接。查询将如下所示:
select ...
from main_table
left outer join join_table1 j1 on ...
left outer join join_table2 j2 on ...
order by coalesce( j1.id, j2.id )