[英]Inner Join on many-to-many relationship on the same table
当我尝试在有 3 列的表上应用Inner Join
时,我遇到了一个奇怪的问题 -
表category_subcategory_relation
id (PK)
category_id_ref (FK)
subcategory_id_ref (FK)
列category_id_ref
和subcategory_id_ref
是表category
的primary keys
。
表category
id (PK)
category_name (Varchar(200))
我想内部加入这两个表并获得如下列 -
Category_Name
Subcategory_Name
我无法理解如何从category
表中获取category_name
列两次,一次用于列Category_Name (FK)
,另一次用于列Child_Category_Name (FK)
。
您必须执行两个连接,在category_id_ref
和subcategory_id_ref
上各一个:
SELECT a.*,
b.category_name AS Category_Name,
c.category_name AS Subcategory_Name
FROM category_subcategory_relation a
JOIN category b
ON a.category_id_ref = b.id
JOIN category c
ON a.subcategory_id_ref = c.id
虽然您的category
表包含类别和子类别信息,但您必须将它们视为两个单独的表(一个用于category
,另一个用于subcategory
)才能将此信息带回您的category_subcategory_relation
表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.