请帮我写一个SQL查询,从下表中提取独特的订单。为此,我准备了一个SQL查询。它工作正常,但在某些地方它返回一些重复的行,因为一些订单有多个产品。提取独特的订单
例如:
客户可以在一个订单购买“IPAD”。但是,如果他们购买“Ipad”和“Android”作为捆绑销售,他们将获得50%的折扣,并且可以省钱。在这种情况下,我们将获得1个订单下的两个产品。但是,顾客将作为一种产品支付(即120美元)。为了正确分配订单,我们为额外的产品创建了一个额外的行(如果产品两个)。如果包含三个产品,它将分别在“product_orders”表中创建三行。
实施例“product_orders”表用于多个产品:
id orders_id product_id qty
1 3 2 1
2 2 1 1
3 3 3 1
请检查实例表的上方,一个用于ORDER_ID束顺序复制两次。 如果我们能够提取一个订单信息,我们将获得整个捆绑信息。所以,我们不需要额外的行。
查询我已经申请:
Select
orders.id,
orders.order_price,
orders.purchase_date,
customers.email,
product_orders.qty,
products.name
from
orders
INNER JOIN product_orders on orders.id=product_orders.orders_id
INNER JOIN products on product_orders.product_id=products._id
INNER JOIN customers on orders.customer_id =customers.id
Result of the above query:
**
Id order_price purchase_date email qty name
3 20 12/6/2011 [email protected] 1 Ipad
3 20 12/6/2011 [email protected] 1 Android
1 40 10/5/2011 [email protected] 2 Laser hair remover
要求的结果:
删除重复顺序ID
Id order_price purchase_date email qty name
3 20 12/6/2011 [email protected] 1 Ipad
1 40 10/5/2011 [email protected] 2 Laser hair remover
表1:订单
id customer_id order_price purchase_date
1 1 0.20 12/6/2011
2 2 0.20 12/6/2011
3 1 0.20 12/6/2011
4 1 0.20 12/6/2011
5 1 0.20 12/7/2011
6 3 199.00 12/7/2011
7 4 199.00 12/7/2011
8 5 199.00 12/7/2011
9 6 199.00 12/7/2011
10 7 199.00 12/7/2011
表2:客户
id email name
1 [email protected] aa
2 [email protected] bb
3 [email protected] cc
4 [email protected] dd
5 [email protected] ee
6 [email protected] ff
7 [email protected] ss
表3:产品
id name
1 A Home Portable Laser Hair Remover
2 Ipad
3 android
4 Asus
5 s
6 10 inch Android
7 A Fabric Steamer Cleaner
8 A Magnetic Fly Screen Door
9 pillopw
10 LCD
表4:product_orders
id orders_id product_id qty
1 1 1 1
2 3 3 1
3 3 4 1
4 4 1 1
5 4 2 1
6 6 1 1
7 7 1 1
8 4 2 1
9 4 3 1
10 10 1 1
请帮我从“product_orders”表只提取1级和查询会忽略其他多余的行
太棒了。谢谢 – Anam
嗨Jhone,请解释以下部分“MIN(Product_ID)prodID FROM product_orders”pls。这将帮助我很多。谢谢 – Anam
子查询获得每个orders_id的产品ID的最小值。运行这个'SELECT orders_id,MIN(Product_ID)prodID FROM product_orders GROUP BY orders_id',您将设置结果。 –