Php 提取特定的捆绑产品订单
如何从下表中提取特定的捆绑产品订单。例如,如果我想提取产品Php 提取特定的捆绑产品订单,php,mysql,sql,Php,Mysql,Sql,如何从下表中提取特定的捆绑产品订单。例如,如果我想提取产品无线鼠标用作捆绑产品的所有订单 预期结果1: orders_id product_name qty 1000 Wireless Mouse 1 1000 Laptop 1 1001 Wireless Mouse 3 1001 PC 3
无线鼠标
用作捆绑产品的所有订单
预期结果1:
orders_id product_name qty
1000 Wireless Mouse 1
1000 Laptop 1
1001 Wireless Mouse 3
1001 PC 3
1003 Wireless Mouse 4
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
1001 PC 3
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
订单\u标识产品\u名称数量
1000无线鼠标1
1000台笔记本电脑1
1001无线鼠标3
1001件3件
1003无线鼠标4
1003 IPAD 4
第二个问题:
orders_id product_name qty
1000 Wireless Mouse 1
1000 Laptop 1
1001 Wireless Mouse 3
1001 PC 3
1003 Wireless Mouse 4
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
1001 PC 3
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
如果我只想提取“无线鼠标”作为捆绑包使用的产品订单,我该怎么做
预期结果2:
orders_id product_name qty
1000 Wireless Mouse 1
1000 Laptop 1
1001 Wireless Mouse 3
1001 PC 3
1003 Wireless Mouse 4
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
1001 PC 3
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
订单\u标识产品\u名称数量
1000台笔记本电脑1
1001件3件
1003 IPAD 4
如果可能,请在以下方面帮助我:
如果我只想提取与“无线鼠标”捆绑使用的“笔记本电脑”订单,我该怎么做
预期结果3:
orders_id product_name qty
1000 Wireless Mouse 1
1000 Laptop 1
1001 Wireless Mouse 3
1001 PC 3
1003 Wireless Mouse 4
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
1001 PC 3
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
订单\u标识产品\u名称数量
1000台笔记本电脑1
示例数据:
orders_id product_name qty
1000 Wireless Mouse 1
1000 Laptop 1
1001 Wireless Mouse 3
1001 PC 3
1003 Wireless Mouse 4
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
1001 PC 3
1003 IPAD 4
orders_id product_name qty
1000 Laptop 1
表1:订单
id customer_id order_price purchase_date
1000 1 203 12/6/2011
1001 2 304 12/6/2011
1002 1 1000 12/6/2011
1003 1 233 12/6/2011
1004 1 44 12/7/2011
1005 3 50 12/7/2011
1006 4 67 12/7/2011
1007 5 99 12/7/2011
1008 6 299 12/7/2011
1009 7 199 12/7/2011
id email name
1 aa@dealboard.com.au james
2 bb@dealboard.com.au Ryan
3 cc@live.com.au Sili
4 dd@acgglobal.com Mame
5 ee.heinrich@det.nsw.edu.au Kane
6 ff@optusnet.com.au Kratos
7 ssy@hotmail.com Kim
id name
1 Laptop
2 PC
3 Wireless Mouse
4 IPAD
5 iphone
6 Wireless Keyboard
7 Printer
8 Glaxy S3
9 Scanner
10 PS3
id orders_id product_id qty
1 1000 1 1
2 1000 3 1
3 1001 2 3
4 1001 3 3
5 1003 4 4
6 1003 3 4
7 1004 5 1
8 1005 6 1
9 1007 7 2
10 1008 8 1
id客户\u id订单\u价格购买\u日期
1000 1 203 12/6/2011
1001 2 304 12/6/2011
1002 1 1000 12/6/2011
1003 1 233 12/6/2011
1004 1 44 12/7/2011
1005 3 50 12/7/2011
1006 4 67 12/7/2011
1007 5 99 12/7/2011
1008 6 299 12/7/2011
1009 7 199 12/7/2011
表2:客户
id customer_id order_price purchase_date
1000 1 203 12/6/2011
1001 2 304 12/6/2011
1002 1 1000 12/6/2011
1003 1 233 12/6/2011
1004 1 44 12/7/2011
1005 3 50 12/7/2011
1006 4 67 12/7/2011
1007 5 99 12/7/2011
1008 6 299 12/7/2011
1009 7 199 12/7/2011
id email name
1 aa@dealboard.com.au james
2 bb@dealboard.com.au Ryan
3 cc@live.com.au Sili
4 dd@acgglobal.com Mame
5 ee.heinrich@det.nsw.edu.au Kane
6 ff@optusnet.com.au Kratos
7 ssy@hotmail.com Kim
id name
1 Laptop
2 PC
3 Wireless Mouse
4 IPAD
5 iphone
6 Wireless Keyboard
7 Printer
8 Glaxy S3
9 Scanner
10 PS3
id orders_id product_id qty
1 1000 1 1
2 1000 3 1
3 1001 2 3
4 1001 3 3
5 1003 4 4
6 1003 3 4
7 1004 5 1
8 1005 6 1
9 1007 7 2
10 1008 8 1
id电子邮件名称
1.aa@dealboard.com.au詹姆斯
2.bb@dealboard.com.au赖安
3.cc@live.com.au西里
4.dd@acgglobal.com玛米
5 ee。heinrich@det.nsw.edu.au凯恩
6.ff@optusnet.com.au奎托斯
7.ssy@hotmail.com基姆
表3:产品
id customer_id order_price purchase_date
1000 1 203 12/6/2011
1001 2 304 12/6/2011
1002 1 1000 12/6/2011
1003 1 233 12/6/2011
1004 1 44 12/7/2011
1005 3 50 12/7/2011
1006 4 67 12/7/2011
1007 5 99 12/7/2011
1008 6 299 12/7/2011
1009 7 199 12/7/2011
id email name
1 aa@dealboard.com.au james
2 bb@dealboard.com.au Ryan
3 cc@live.com.au Sili
4 dd@acgglobal.com Mame
5 ee.heinrich@det.nsw.edu.au Kane
6 ff@optusnet.com.au Kratos
7 ssy@hotmail.com Kim
id name
1 Laptop
2 PC
3 Wireless Mouse
4 IPAD
5 iphone
6 Wireless Keyboard
7 Printer
8 Glaxy S3
9 Scanner
10 PS3
id orders_id product_id qty
1 1000 1 1
2 1000 3 1
3 1001 2 3
4 1001 3 3
5 1003 4 4
6 1003 3 4
7 1004 5 1
8 1005 6 1
9 1007 7 2
10 1008 8 1
身份证名称
1台笔记本电脑
2件
3无线鼠标
4台IPAD
5 iphone
6无线键盘
7打印机
8 Glaxy S3
9扫描仪
10 PS3
表4:产品订单
id customer_id order_price purchase_date
1000 1 203 12/6/2011
1001 2 304 12/6/2011
1002 1 1000 12/6/2011
1003 1 233 12/6/2011
1004 1 44 12/7/2011
1005 3 50 12/7/2011
1006 4 67 12/7/2011
1007 5 99 12/7/2011
1008 6 299 12/7/2011
1009 7 199 12/7/2011
id email name
1 aa@dealboard.com.au james
2 bb@dealboard.com.au Ryan
3 cc@live.com.au Sili
4 dd@acgglobal.com Mame
5 ee.heinrich@det.nsw.edu.au Kane
6 ff@optusnet.com.au Kratos
7 ssy@hotmail.com Kim
id name
1 Laptop
2 PC
3 Wireless Mouse
4 IPAD
5 iphone
6 Wireless Keyboard
7 Printer
8 Glaxy S3
9 Scanner
10 PS3
id orders_id product_id qty
1 1000 1 1
2 1000 3 1
3 1001 2 3
4 1001 3 3
5 1003 4 4
6 1003 3 4
7 1004 5 1
8 1005 6 1
9 1007 7 2
10 1008 8 1
id订单\u id产品\u id数量
1 1000 1 1
2 1000 3 1
3 1001 2 3
4 1001 3 3
5 1003 4 4
6 1003 3 4
7 1004 5 1
8 1005 6 1
9 1007 7 2
10 1008 8 1
对不起,各位,我今天问得太多了。关于问题1 如下面所示,查询是嵌套的 子查询2获取其上有
无线鼠标的所有订单id
子查询1统计存在无线鼠标的每个订单ID
的记录数
主查询加入来自产品\u订单
和产品
Main Query
-- Subquery 1
--- Subquery 2
对于问题2
从问题1
,您只需在WHERE
子句中添加添加条件,即可过滤所有记录,而无需无线鼠标
...
WHERE bbb.name <> 'Wireless Mouse'
。。。
其中bbb.name“无线鼠标”
质疑,
SELECT aaa.orders_id, bbb.name, aaa.qty
FROM products_orders aaa
INNER JOIN products bbb
ON bbb.id = aaa.product_id
INNER JOIN
(
SELECT aa.ORDERS_ID
FROM products_orders aa
INNER JOIN
(
SELECT orders_id
FROM products_orders a
INNER JOIN products b
ON b.id = a.product_id
WHERE name = 'Wireless Mouse'
) bb ON aa.orders_id = bb.orders_id
GROUP BY aa.ORDERS_ID
HAVING COUNT(*) > 1
) ccc ON aaa.orders_id = ccc.orders_id
WHERE bbb.name <> 'Wireless Mouse'
选择aaa.orders\u id、bbb.name、aaa.qty
从产品到订单aaa
内连接产品bbb
在bbb.id=aaa.product\u id上
内连接
(
选择aa.ORDERS\u ID
从产品到订单aa
内连接
(
选择订单号
从产品到订单a
内连接产品b
在b.id=a.product\u id上
其中name='无线鼠标'
)aa.orders\u id=bb.orders\u id上的bb
按aa.ORDERS\U ID分组
计数(*)大于1的
)aaa.orders\u id上的ccc=ccc.orders\u id
其中bbb.name“无线鼠标”
对于问题3
就像问题2一样,添加额外的条件
...
WHERE bbb.name <> 'Wireless Mouse' AND
bbb.name = 'Laptop'
。。。
其中bbb.name“无线鼠标”和
bbb.name='笔记本电脑'
质疑,
SELECT aaa.orders_id, bbb.name, aaa.qty
FROM products_orders aaa
INNER JOIN products bbb
ON bbb.id = aaa.product_id
INNER JOIN
(
SELECT aa.ORDERS_ID
FROM products_orders aa
INNER JOIN
(
SELECT orders_id
FROM products_orders a
INNER JOIN products b
ON b.id = a.product_id
WHERE name = 'Wireless Mouse'
) bb ON aa.orders_id = bb.orders_id
GROUP BY aa.ORDERS_ID
HAVING COUNT(*) > 1
) ccc ON aaa.orders_id = ccc.orders_id
WHERE bbb.name <> 'Wireless Mouse' AND
bbb.name = 'Laptop'
选择aaa.orders\u id、bbb.name、aaa.qty
从产品到订单aaa
内连接产品bbb
在bbb.id=aaa.product\u id上
内连接
(
选择aa.ORDERS\u ID
从产品到订单aa
内连接
(
选择订单号
从产品到订单a
内连接产品b
在b.id=a.product\u id上
其中name='无线鼠标'
)aa.orders\u id=bb.orders\u id上的bb
按aa.ORDERS\U ID分组
计数(*)大于1的
)aaa.orders\u id上的ccc=ccc.orders\u id
其中bbb.name“无线鼠标”和
bbb.name='笔记本电脑'
谢谢您的帮助。有趣的是,我不知道这是“不平等”。今天我从美国学到了很多。再次感谢。