【发布时间】:2019-01-18 21:40:53
【问题描述】:
我正在研究一种处理订单的方法,我必须满足来自多个供应商的订单,并且我想知道哪 2 个供应商可以提供给定的订单。
我订单中的product_ids是10,20,30,40,50
SELECT *
FROM vendors
WHERE product_id IN (10,20,30,40,50)
提供至少拥有 1 种产品的所有供应商
vendor_id | product_id
1234 10
1234 20
1234 30
1234 40
1235 10
1235 40
1236 20
1236 30
1236 40
1237 50
9876 10
9876 20
9876 30
9876 40
9877 10
9877 40
9877 50
9878 10
9878 20
9878 30
9878 50
经过几个疯狂的子查询(太长,无法在此处发布),我可以找到一个表格,显示每个供应商缺少的内容,然后我的想法是根据这些缺少的项目加入该表格,然后向供应商展示有细化的清单。
结果应该看起来像(逗号分隔与否无关紧要,只是更容易阅读)
vender_1 | product_id | missing_product_id | vendor_2
1234 10,20,30,40 50 9876,9878
1235 10,40 20,30,50 9878
1236 20,30,40 10,50 9877
1237 50 10,20,30,40 1234
或
vender_1 | product_id | missing_product_id | vendor_2
1234 10
1234 20
1234 30
1234 40
1234 50 9876
1234 50 9878
等等……
【问题讨论】:
-
考虑处理应用程序代码中的显示问题
-
是的。不担心显示问题。只是想得到结果:)