如何选择SKU和数量相同的订单?

时间:2019-01-17 04:18:40

标签: mysql

我在联接中有订单和购买的产品表。

我如何选择购买商品表中具有相同SKU和数量以及相同项目的订单?

假设我首先在下面的订单表中选择ID为1的最早的订单,它应该从购买的产品表(AB和C)中获取所有已购买的商品,并引用该参考,它应该检索所有相似的订单。

我的订单ID为1,具有SKU A B C,商品为qty 1 1 2,共3个商品。我需要从表中选择所有类似的订单。预期的o / p:查询应检索ID为1和4的订单。

**orderTable**
id  order_date
1   2019-01-01
2   2019-01-02
3   2019-01-03
4   2019-01-04

**purchasedProductsTable**
orderId  sku     qty
1        A       1
1        B       1
1        C       2
2        A       1
3        B       1
4        A       1
4        B       1
4        C       2

1 个答案:

答案 0 :(得分:1)

要直接从购买表中选择与订单相关的所有记录,请执行以下操作:

SELECT * FROM purchasedProductsTable WHERE orderId = 1;

要通过加入orderTable选择与订单相关的所有记录:

SELECT * FROM orderTable OT JOIN purchasedProductsTable PT ON (PT.orderId = OT.id) WHERE OT.id = 1;

如果您只需要订单1和4:

SELECT * FROM orderTable OT JOIN purchasedProductsTable PT ON (PT.orderId = OT.id) WHERE OT.id IN (1,4);

按最早的日期排序:

SELECT * FROM orderTable OT JOIN purchasedProductsTable PT ON (PT.orderId = OT.id) ORDER BY OT.order_date DESC;

这里是SQL Fiddle for demo