我在联接中有订单和购买的产品表。
我如何选择购买商品表中具有相同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
答案 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;