为sqlite中的categoryid选择所有产品和相关产品
我有两张桌子:产品和儿童产品 我需要选择给定类别ID的所有产品以及不具有相同类别ID的相关子产品为sqlite中的categoryid选择所有产品和相关产品,sql,sqlite,Sql,Sqlite,我有两张桌子:产品和儿童产品 我需要选择给定类别ID的所有产品以及不具有相同类别ID的相关子产品 Products: ItemID CategoryID Name A 1 Test1 B 1 Test2 C 2 Test3 A1 0 Test4 A2 0 Test5 A3 0 Test6 B1
Products:
ItemID CategoryID Name
A 1 Test1
B 1 Test2
C 2 Test3
A1 0 Test4
A2 0 Test5
A3 0 Test6
B1 0 Test7
B2 0 Test8
C1 0 Test9
C2 0 Test10
C3 0 Test11
C4 0 Test12
Child Products:
ParentItemID ChildItemID
A A1
A A2
A A3
B B1
B B2
C C1
C C2
C C3
C C4
因此需要parentItemID在给定类别中的所有产品,即CategoryID=1将返回:
Results:
A Test1
A1 Test4
A2 Test5
A3 Test6
B Test2
B1 Test7
B2 Test8
select p1.ItemID
from Products p1
LEFT JOIN ChildProducts cp on p1.ItemId=cp.ChildItemID
LEFT JOIN Products p2 on cp.ParentItemID=p2.ItemId
where p1.CategoryId=1
or
p2.CategoryId=1
ORDER BY COALESCE(p2.ItemID,p1.ItemID),p2.ItemId