为sqlite中的categoryid选择所有产品和相关产品

为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

我有两张桌子:产品和儿童产品

我需要选择给定类别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        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