Mysql 查询 JOIN 查询

标签 mysql join

我有三张 table 。表 A 有选项名称(即颜色、尺寸)。表 B 有选项值名称(即蓝色、红色、黑色等)。表C通过将选项名称id和选项名称值id放在一起来建立关系。

我的查询需要显示值和选项的名称,而不是 ID 号。我可以一次执行 A 和 B 一项操作,并获取值和选项名称的列表,但由于值和选项是相关的,所以我想要一个组合列表。例如。

颜色 - 蓝色 红色 尺寸 - 大 尺寸 - 小号

所以我的问题是如何连接这两个查询以获得如上所示的组合结果。

SELECT products_options.products_options_name FROM products_options
LEFT JOIN products_options_values_to_products_options ON products_options_values_to_products_options.products_options_id=products_options.products_options_id

SELECT products_options_values.products_options_values_name FROM products_options_values
LEFT JOIN products_options_values_to_products_options ON products_options_values_to_products_options.products_options_values_id=products_options_values.products_options_values_id

最佳答案

您需要两个联接,如下所示:

select product_options.product_id,
       option_names.name_id,
       option_names.name,
       option_values.value_id,
       option_values.name
from product_options
join option_names using (option_id)
join option_values using (option_id)
where product_options.product_id = :product_id

它不会将它们组合在一起以立即插入到您的变体表中,但这是您在 MySQL 中所能做的最好的事情。

关于Mysql 查询 JOIN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122528/

相关文章:

mysql - 从多个表中检索聚合值

python - 如何从嵌套 json 输出 Python Pandas Dataframe?

java - 正则表达式:完全匹配由定界符分割的字符串

php - 使用 PHP 向 MySQL DB 中的收件人发送电子邮件

mysql - 查看时将三张表合二为一

MySQL 转换或转换

mysql - SQL - 选择两列中具有相同值的行

mysql - 如何通过mysql查询获取所有项目及其值(value)

mysql - 如何在 sql 中使用 JOIN 获得正确的结果?

连接五个表的 mySQL 查询