【发布时间】:2021-02-13 15:14:44
【问题描述】:
我有 3 张桌子:
购买请求 - 有列 - id、name
Order_purchase_request - 具有列 - order_id、purchase_request_id(多对多链接)
订单 - 有列 - id、name、ordered_on
Purchase requests table
1| A
2| B
3| C
Orders table
1| XYZ | 2020-10-28 00:00
2| PQR | 2020-10-27 00:00
3| ABC | 2020-10-29 00:00
4| DEF | 2020-10-29 00:00
5| GHI | 2020-10-30 00:00
Order_purchase_request
1|1
2|1
3|3
4|2
5|2
5|3
我希望 SQL 查询返回订单日期最高的采购请求
结果集应该类似于 -
purchase_request_id|Order Name|Ordered on
1 | XYZ | 2020-10-28 00:00
2 | GHI | 2020-10-30 00:00
3 | GHI | 2020-10-30 00:00
我编写了以下 SQL。但它返回了我所有的行。有什么问题?
SELECT p.id, p.purchase_request_name, o.ordered_on
from purchase_requests p
JOIN order_purchase_request opr
on p.id = opr.purchase_request_id
JOIN orders o on opr.order_id = o.id
WHERE o.id = (SELECT o.id
FROM ???
WHERE o.id = apr.amazon_purchase_order_id
ORDER BY o.id DESC LIMIT 1)
ORDER BY purchase_request_name DESC;
我正在使用 MariaDB。
【问题讨论】:
标签: mysql mariadb many-to-many inner-join greatest-n-per-group