mysql - MySQL 对单个字段进行多个组以生成组合
问题描述
我有一张这样的桌子
Id_Product | Id_Option | 团体 | 姓名 |
---|---|---|---|
1 | 1 | 数量 | 文本1 |
1 | 2 | 数量 | 文本2 |
1 | 3 | 数量 | 文本3 |
1 | 4 | 尺寸 | 文本4 |
1 | 5 | 尺寸 | 文本5 |
1 | 6 | 重量 | 文本6 |
我需要找到一种方法来从组字段中找到所有可能的组合
例子
Id_Product | Id_Option1 | 数量 | Id_Option2 | 尺寸 | Id_Option3 | 重量 |
---|---|---|---|---|---|---|
1 | 1 | 文本1 | 4 | 文本4 | 6 | 文本6 |
1 | 1 | 文本1 | 5 | 文本5 | 6 | 文本6 |
1 | 2 | 文本1 | 4 | 文本4 | 6 | 文本6 |
1 | 2 | 文本1 | 5 | 文本4 | 6 | 文本6 |
1 | 3 | 文本1 | 4 | 文本4 | 6 | 文本6 |
1 | 3 | 文本1 | 5 | 文本4 | 6 | 文本6 |
不同 id_product 的 group 列的不同记录数可能会有所不同
到目前为止,我在 php 中使用多重查询执行此操作,但必须有一种更简洁的方法可以直接在 mysql 中执行此操作。
到目前为止做这个简短的算法
- 按 Id_Product 从表顺序中选择不同的 Id_Product 作为 The_Product
- 从 Id_Product = The_Product 的表中选择不同的 table.group 作为 The_Group
- 从表中选择 Count(Id_Option) 作为 Nb_Variant
从 Nb_Variant 中,我填充了一个数组并最终获取了数据,但这需要大量的查询和内存,因为该表中有超过 10 万条记录。
任何帮助或想法将不胜感激。
解决方案
推荐阅读
- reactjs - 在 react 和 typescript 中使用 videojs-contrib-ads
- angular - 如何在Angular ag-Grid中将图像显示为工具提示
- database - 如何在mongodb中缩放用户时间序列数据
- c++ - 如何在自定义容器中支持范围适配器?
- c# - 无法结合读取偏好、最大时间和限制
- android - 在 android 中启动活动以获取结果时是否需要 unRegisterForActivityResult ?如何管理不同的请求代码?
- android - 了解 APK、ABB 大小和 Play 商店大小限制
- c# - 错误:System.InvalidOperationException:没有为此 DbContext 配置数据库提供程序
- javascript - 在会话中存储来自 7 个数据的 wordpress 联系人而不刷新?
- html - Powershell JSON 对象到 HTML 表并将其添加到另一个 JSON 对象的值