非平凡的查询

时间:2013-01-19 16:57:14

标签: sql-server sql-order-by

我需要编写一个查询。 有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

1 个答案:

答案 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 )