2

Products製品が構成するすべてのアイテムを含むブリッジテーブルにマップするテーブルがあるため、製品 A は複数のアイテムまたは 1 つのアイテムで構成される可能性があります。(OTM)

product_sub_item_bridge見た目はこんな感じ、

+------------+----------------------------+
| | 商品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ます。

私が今やりたいことは、すべての を取得し、それらをおよびおそらくIDclient_sub_productsでグループ化し、何らかの方法でブリッジ テーブルを介してテーブルを結合し、すべての を含むリストを取得できるようにすることです。それらの正確なもので構成されています。そのようです...client_order_idGROUP_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_itemsブリッジ テーブルを通過できないようです。ブリッジ テーブルを介してに参加する方法がわかりません。関連するProducts製品が複数あるためclient_sub_product_item、混乱しているようです。

みんなを混乱させるだけでなく、自分自身を十分に説明できたことを願っています...上記のことを明確にする必要があるかどうか教えてください.

4

1 に答える 1

0

サブ製品が注文可能なエンティティでない場合、サブ製品をクライアントに関連付けるのはなぜですか? そこから各クライアントのサブ製品を簡単に導出できるため、製品をクライアントに割り当てるだけではどうですか? 現時点では、例のサブプロダクト 332 がプロダクト 137 または 140 に関連しているかどうかを判断する決定的な方法はありません。

于 2013-07-18T19:26:16.060 に答える