![](/img/trans.png)
[英]MySQL - order/group records by foreign key referencing the same table (Laravel, ORM)
[英]order by foreign key mysql same table
我有一個表(表順序),外鍵索引到同一個表,每個訂單都有許多其他訂單:
order
----------
id_order
state
id_source
id_source 是同一個表中 id_order 的外鍵
我想選擇按訂單狀態及其訂單排序的所有行。
我試過這段代碼,但它沒有給我我想要的。
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
如果我正確理解您,那么您想對 order by 使用條件語句,這可以通過以下方式實現:
select *
from order o
left join order o2 ON(o.id_order = o2.id_source)
order by if(id_source is null, o.state, o2.state) asc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.