我有一个Products
表,它映射到包含所述产品所包含的所有项目的桥接表,因此产品A可以包含多个项目或仅包含一个项目。 (OTM)
product_sub_item_bridge
看起来像这样,
+------------+----------------------------+ | product_id | client_sub_product_item_id | +------------+----------------------------+ | 137 | 332 | | 138 | 333 | | 139 | 334 | | 140 | 332 | | 140 | 335 | +------------+----------------------------+
所以说客户订购产品 140 ,商品 332 和 335 将被插入一个名为client_sub_products
的表中与订单的关系以及存储在client_sub_product_items
表中的项目本身。
我现在要做的是获取所有client_sub_products
,将它们按client_order_id
分组,然后将GROUP_CONCAT()
ID分组,并以某种方式加入Products
表通过桥接表将它放到它上面,以便我可以获得包含COUNT()
的列表,其中包含由Products
组成的所有client_sub_product_items
。像这样......
+--------------+---------------------+ | product_name | count(product_name) | +--------------+---------------------+ | Product A | 15 | | Product 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_items
加入Products
,因为有些产品不止一个client_sub_product_item
与此相关,我似乎在那里感到困惑。
我希望我已经充分解释了自己,而不仅仅是让所有人感到困惑......如果我想澄清上面提到的任何事情,请告诉我。
答案 0 :(得分:0)
如果子产品不是可订购实体,为什么要将子产品关联到客户端?为什么不直接将产品分配给客户端,因为从中可以很容易地为每个客户端派生子订单?就目前而言,您没有明确的方法来确定您的示例中的子产品332是否与产品137或140相关。