首页 > 解决方案 > 如何获得忽略子表元素的元素数量?

问题描述

我想获得我拥有的订单,但是当我进行选择时,每个项目都有不同的行,但我不知道如何获得忽略项目的订单

ORDERS
ID 
1
2 
3
ORDER_PRODUCT
ID ORDER_ID PRODUCT_ID
1  1        1    
1  1        2
1  2        3
1  3        4
SELECT ORDER_PRODUCT.* FROM ORDER_PRODUCT INNER JOIN ORDERS ON ORDERS.ID = ORDER_PRODUCT.ORDER_ID LIMIT 2;

我希望获得 2 个订单信息,但我收到了 2 个第一批商品,我怎样才能获得 2 个订单?

我收到的:

ID ORDER_ID PRODUCT_ID
1  1        1
1  1        2

我期望收到的:

ID ORDER_ID PRODUCT_ID
1  1        1
1  1        2
1  2        3

标签: mysqlmariadb

解决方案


如果我确实了解您要尝试的方法,那么您正在尝试限制内部连接元素,因此您应该执行类似的操作来仅限制内部连接,而不是限制整个查询:

SELECT op.ID FROM ORDER_PRODUCT op 
INNER JOIN (SELECT * FROM ORDERS LIMIT 2) as o ON o.ID = op.ORDER_ID;

另外我假设您还想在内连接查询中添加条件,只需在限制之前添加它们。

如果这不是您想要达到的目标,请告诉我。


推荐阅读