我想显示产品细节订单的供应商谁张贴该产品。
例:
产品表
| ProductIDs | VendorIDs | ProductsName |
----------------------------------------
| 04 | 1 | Shirt |
| 05 | 2 | Pants |客户A来自供应商A的订单productid 04和来自供应商B订单表的productid 05应该是:
订单表(客户A= 1,供应商A= 1,供应商B= 2)
| OrderIDs | VenderIDs | ProductIDs | CustomerIDs |
---------------------------------------------------
| 1 | 1, 2 | 04, 05 | 1 |当供应商A选择订单列表时,我希望仅由供应商A或供应商B显示ORDER和PRODUCT详细信息,如下所示:
供应商A收入订单页面。
| OrderIDs | ProductIDs | CustomerIDs | ProductsName |
------------------------------------------------------
| 1 | 04 | 1 | Shirt |
------------------------------------------------------供应商B收入订单页面。
| OrderIDs | ProductIDs | CustomerIDs | ProductsName |
------------------------------------------------------
| 1 | 05 | 1 | Pants |
------------------------------------------------------还有客户订购单页面。
| OrderIDs | ProductIDs | ProductsName |
----------------------------------------
| 1 | 04, 05 | Shirt, Pants |
----------------------------------------这是我为选定的订单使用的代码。SELECT * FROM Order WHERE FIND_IN_SET(1, VendorIDs)--这段代码将仅由ProductsName字段中的第一个值显示,如下所示。
| OrderIDs | ProductIDs | CustomerIDs | ProductsName |
------------------------------------------------------
| 1 | 04 | 1 | Shirt |
------------------------------------------------------当我将(1, VendorIDs)更改为(2, VendorIDs)时,它将显示在相同的结果中。
非常感谢。
发布于 2016-01-09 06:04:01
首先:您不应该在order表中有Vendor ID。(如果您需要关联订单ID和供应商ID,则可以通过查询实现这一点。)
第二:每个ProductID都应该在Orders表中有自己的记录:
| OrderIDs | ProductIDs | CustomerIDs |
---------------------------------------------------
| 1 | 04 | 1 |
| 1 | 05 | 1 |第三:我假设您总是有一个与每个订单相关的客户,对于这样的一个订单,您不太可能有两个不同的客户:
| OrderIDs | ProductIDs | CustomerIDs |
---------------------------------------------------
| 1 | 04 | 1 |
| 1 | 05 | 5 |因此,客户ID不属于列出订单详细信息的表。相反,您应该有一个OrderDetails表:
| OrderID | ProductID |
-----------------------
| 1 | 04 |
| 1 | 05 |
| 2 | 09 |命令表:
| OrderID | CustomerID |
------------------------
| 1 | 1 |
| 2 | 5 |
| 3 | 5 |如果您在重新配置您的表后有任何问题,请告诉我,我可以帮助您。
https://stackoverflow.com/questions/34689935
复制相似问题