我有以下数据库结构:(MySQL)
product(id,name)
category(id,name)
category_manager(id,fk_product,fk_category)
我想在有产品时选择类似的产品。应根据每个产品的类别进行选择。我想要类似WP的类似帖子,但我不知道怎么写下来。
让我举个例子。 E.g。
我有3个产品包含以下内容:
product(id,name)
product(1,towel)
product(2,coat)
product(3,tshirt)
product(4,shoes)
....
category(id,name)
category(1,wool)
category(2,cotton)
category(3,windproof)
category(3,synthetic)
category(4,lether)
....
category_manager(id,fk_product,fk_category)
category_manager(1,1,1)
category_manager(2,1,2)
category_manager(3,2,2)
category_manager(4,2,3)
category_manager(5,3,1)
category_manager(6,4,4)
....
如果我有毛巾ID,我该如何选择以下产品:
“3,tshirt
”(因为它属于“1,wool
”类别)
“2,coat
”(因为它属于“2,cotton
”类别)
??????
这可能是一个加入声明,但......
答案 0 :(得分:2)
您需要自我加入管理器表:
select p.*
from manager m1
join manager m2 on m1.fk_category = m2.fk_category
Join product p on m2.fk_product = p.id
where m1.fk_product = 1 and m2.fk_product <> m1.fk_product
答案 1 :(得分:0)
如果我没错,我理解正确
SELECT p.name, c.name
FROM product p
JOIN category_manager cm on p.id = cm.fk_product
JOIN category c on cm.fk_category = c.id