mysql - 如何从 MySQL 表中获取所有数据组合?

标签 mysql

<分区>

在过去的五个小时里,我一直试图从表格中获取每个产品选项组合,但我现在完全被困住了。我有一个包含类似(简化)数据的表格:

CREATE TABLE `assigned_options` (
  `option_id` int(10) unsigned NOT NULL DEFAULT '0',
  `value_id` int(10) unsigned NOT NULL DEFAULT '0',
);

INSERT INTO `assigned_options` (`value_id`, `option_id`) VALUES
(4, 2),
(3, 2),
(2, 1),
(1, 1),
(5, 3),
(6, 3),
(7, 3);

假设选项 ID 2 是红色 (4) 和蓝色 (3) 变化的颜色,选项 ID 1 尺寸等....

是否可以通过一个 MySQL 查询来完成此操作?我曾尝试使用 PHP 制作一个循环函数来获得所有可能性,但我就是无法让它工作。

非常感谢任何提示。 :)

最佳答案

根据您的表格...我假设您想要所有可能的值(value)和选项组合。这是一个交叉连接(没有任何 ON 或 where 子句限制结果的连接):

 SELECT a.value_id, b.option_id 
     FROM assigned_options a 
     JOIN assigned_options b 
     GROUP BY a.value_id, b.option_id 

分组依据过滤掉重复的结果。

您是否有其他 2 个表 valueoption 要提取它们的所有组合?

关于mysql - 如何从 MySQL 表中获取所有数据组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961097/

相关文章:

mysql - 透视表的最佳方法是什么?

c# - 如何使用 C# 检查 MySql 数据库电子邮件是否存在,如果不存在则重定向?

php - 许多数据库调用加载较少的数据,还是较少的数据库调用加载更多的数据?

php - MySQL 连接/求和/排序

javascript - Laravel 5.7 从 DB : JS not recognizing the route 自动完成搜索

主键条件缓慢的 MySQL 更新

php - 如何防止零作为值记录在数据库中

php - 使用 MySQL 和 PHP 的 Google Geocode V2 与 V3

mysql - Cmake 链接到 mysql & curl,LNK2019

MySQL 查询根据条件限制查找行重复项