mysql连接两个相同的列

标签 mysql

我知道标题有点令人困惑,但我不知道如何更好地命名它。 我有这样的表:

产品:

product_id | product_name | product_category1 | product_category2

类别

category_id | category_name

我想选择如下所示的记录:

product_id | product_name | category_name | subcategory_name (where category is category1 and subcategory is category2)

所以我需要的是加入两列,其中每列都是“category_name”列,但 category_name 必须将 id 保存在 product_category1subcategory_name 必须将 id 保存在 product_category2

我尝试了很多东西,但我真的被困住了。我什至无法粘贴我的概念,因为目前我没有。

最佳答案

您只需将产品和类别连接两次,并在两次连接中为 categories 表使用不同的别名。像这样的东西:

SELECT prd.product_id, prd.product_name,cat.category_name,subcat.category_name
FROM products AS prd
JOIN categories AS cat ON cat.category_id = prd.product_category1
JOIN categories AS subcat ON subcat.category_id = prd.product_category2

关于mysql连接两个相同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913594/

相关文章:

mysql join 子句相当于 where 子句,反之亦然

mysql - 错误 : cannot find the c:\wamp64\bin\mysql5. 7.19\my.ini 文件

MySQL LOAD XML 耗时太长(系统锁定)

mysql - Node js 数据库中的 Braintree 集成问题

mysql - 为mysql中的唯一索引列创建外键

mysql - 按年循环多个数组

mysql - 如何在MySQL中选择所有以特定数字开头的列数据

mysql - 如何从 mysql 数据库记录中删除 [mytag] 某些文本 [/mytag] 标签之间的文本?

mysql - 这个sql查询的语法错误在哪里?

mysql - 在子查询中检索当前行和下一行之间的Timediff