我正在使用此(简化):
SELECT
o.order,
GROUP_CONCAT(oi.article)
FROM orders o
JOIN order_items oi
ON o.order = oi.order
GROUP BY o.order
LIMIT 50
获取所有订单商品的最后50个订单。
但是我需要订单项在他们自己的行中(veritcally返回)而不是GROUP_CONCAT水平返回。
如何在每行中使用单个订单商品退回最近50个订单的所有订单商品?
答案 0 :(得分:1)
使用子查询选择最后50个订单,然后将其与项目连接。
select o.order, oi.article
from (SELECT order
FROM orders
ORDER BY order_date DESC
LIMIT 50) o
JOIN order_items oi
ON o.order = oi.order
答案 1 :(得分:1)
你谈到了最后50个项目,但你没有提到ORDER BY的date_field。在订单表中有了date_field,你可以这样做:
SELECT o.order, oi.article
FROM (SELECT order
FROM orders
ORDER BY date_field DESC
LIMIT 50 ) o
INNER JOIN order_items oi ON o.order = oi.order