我正在尝试获取项目列表以及每个项目的订单信息。订单始终至少有一个与之关联的项目。我想将此列表限制为10个订单中的所有商品。正如我的查询位于下方,它会获得10个项。将此限制为10个订单的最佳方法是什么,同时获取与这些订单相关的所有项目(10行还是200行)?
SELECT o.*, i.*
FROM orders o, items i
WHERE i.order_id = o.id
LIMIT 0, 10
非常感谢!
答案 0 :(得分:2)
尝试使用首先限制订单的子选择。在外部选择中,您可以将所有项目提取到这10个订单。
SELECT o.*, i.*
FROM items i, (SELECT * FROM orders LIMIT 0, 10) o
WHERE i.order_id = o.id
答案 1 :(得分:2)
SELECT oo.*, i.*
FROM (
SELECT *
FROM orders o
LIMIT 10
) oo , items i
WHERE i.order_id = oo.id
答案 2 :(得分:1)
我不知道mysql但是要猜测
SELECT o.*, i.*
FROM orders o, items i
WHERE i.order_id = o.id and
o.id in (select o.id from orders o limit 0, 10)
答案 3 :(得分:1)
这样的事情应该有效:
SELECT o.*, i.*
FROM items i INNER JOIN orders o ON o.id = i.order_id
WHERE o.order_id IN (
SELECT o.id
FROM orders
LIMIT 0, 10
)
答案 4 :(得分:1)
SELECT orders1.*, items.*
FROM
(select * from orders
LIMIT 10) AS orders1
LEFT JOIN items ON orders1.id = items.order_id;