我有一个表(表顺序),外键索引到同一个表,每个顺序都有许多其他顺序:
order
----------
id_order
state
id_source
id\源是引用同一表中id\顺序的外键
我要选择按顺序状态及其顺序排列的所有行。
我试过这个代码,但它没有给我想要的。
select * from order o left join order o2 ON(o.id_order = o2.id_source)
order by o.state , o2.state asc ;
例如:
id_order | state | id_source
-----------------------------------
1 | 1 | null
-----------------------------------
2 | 2 | null
-----------------------------------
3 | 3 | null
-----------------------------------
4 | 1 | 3
我想要的结果
id_order | state | id_source
-----------------------------------
1 | 1 | null
-----------------------------------
3 | 3 | null
-----------------------------------
4 | 1 | 3
-----------------------------------
2 | 2 | null
1条答案
按热度按时间gz5pxeao1#
如果我理解正确,那么您需要在order by上使用条件语句,这在以下情况下是可能的: