我希望你能帮我解决这个问题:我有三张桌子,类似于:
ORDER
Order_ID | Order_Date
=====================
1 | 01/01/2001
2 | 02/01/2001
3 | 03/01/2001
4 | 04/01/2001
5 | 05/01/2001
ORDER_DETAIL
Order_Detail_ID | Order_ID | Status_ID
======================================
1 | 1 | 1
2 | 1 | 1
3 | 1 | 2
4 | 2 | 2
5 | 2 | 3
6 | 3 | 3
7 | 3 | 3
STATUS
Status_ID | Status_Name | Status_Priority
=========================================
1 | PENDING | 3
2 | COMPLETED | 2
3 | CANCELLED | 1
现在,正如我想的那样,ORDER_DETAIL表中的每一行都使用Order_ID与ORDER表相关,并且它还具有Status_ID指示的状态。此外,STATUS表具有Status_Priority列。我需要做的是显示每个订单,以及其他列,每个订单的订单详细信息中具有最高优先级的状态,如下所示:
Order_ID | Order_Date | Status_Name
===================================
1 | 01/01/2001 | PENDING
2 | 02/01/2001 | COMPLETED
3 | 03/01/2001 | CANCELLED
4 | 04/01/2001 |
5 | 05/01/2001 |
在这种情况下,例如,由于Order_ID 1至少有1个具有PENDING状态的Order_Detail_ID,它在其具有的详细信息中具有最高优先级,即出现的那个。我尝试使用带有子查询的JOIN,基于类似的代码,但我似乎无法适应这种情况。任何帮助都感激不尽。提前谢谢。
答案 0 :(得分:0)
选择列,按order_id连接表,按Status_Priority排序