2

我有一个Products表,它映射到一个桥接表,其中包含所述产品所包含的所有项目,因此产品 A 可以由多个项目或一个项目组成。(OTM)

长这样product_sub_item_bridge

+------------+----------------------------+
| 产品编号 | client_sub_product_item_id |
+------------+----------------------------+
| 137 | 332 |
| 138 | 333 |
| 139 | 第334章
| 140 | 332 |
| 140 | 335 |
+------------+----------------------------+

因此,假设客户订购产品140,项目332335将被插入到名为的表中,该表包含与订单的关系以及存储在表client_sub_products中的项目本身。client_sub_product_items

我现在想做的是获取所有的,按idclient_sub_products分组它们,client_order_id并通过桥接表以某种方式将表连接到它上,这样我就可以获得一个包含,的列表由那些确切的. 像这样...GROUP_CONCAT()ProductsCOUNT()Productsclient_sub_product_items

+--------------+----------+
| 产品名称 | 计数(产品名称) |
+--------------+----------+
| 产品A | 15 |
| 产品B | 25 |
+--------------+----------+

这是我到目前为止所拥有的,

SELECT GROUP_CONCAT(`client_sub_products`.`client_sub_product_item_id`) FROM `client_sub_products` LEFT JOIN `client_sub_product_items` ON `client_sub_product_items`.`id` = `client_sub_products`.`client_sub_product_item_id` GROUP BY `client_sub_products`.`client_order_id` ORDER BY `client_sub_products`.`client_order_id` ASC;

我似乎无法通过桥接表,我不知道如何通过桥接表加入,因为有些产品与它相关的产品不止一个,我似乎在那里感到困惑client_sub_product_itemsProductsclient_sub_product_item

我希望我已经充分解释了自己,而不仅仅是让每个人都感到困惑......如果我应该尝试澄清上述任何内容,请告诉我。

4

1 回答 1

0

如果子产品不是可订购实体,为什么要将子产品关联到客户端?为什么不直接将产品分配给客户,因为这样很容易为每个客户派生子产品?就目前而言,您无法确定示例中的子产品 332 是否与产品 137 或 140 相关。

于 2013-07-18T19:26:16.060 回答