WebSQL 选择 child + parent
WebSQL selecting child + parent
我正在尝试导出包含 child 的类别列表。
数据库的设计者使 parent 类别可以具有与 child
相同的 ID
所以查询应该 return 列表:
- Parent 项
- Child 项 parent 名称
我试图在 1 个查询中执行此操作,因此我执行了以下操作:
SELECT DISTINCT c.*, pc.name as parentName
FROM Category as c
INNER JOIN Category as pc on c.parent_id = pc.id
WHERE c.building_id = 1
AND (
c.parent_id = -1
OR (
c.usingtemplate = 'true'
AND
pc.parent_id = -1
)
);
但是 parent 不在列表中
我这里有一个sqlfiddle:http://sqlfiddle.com/#!7/75dd9/83
执行 LEFT JOIN 成功了
SELECT DISTINCT c.*, pc.name as parentName
FROM Category as c
LEFT JOIN Category as pc on c.parent_id = pc.id
WHERE c.building_id = 1
AND (
c.parent_id = -1
OR (
c.usingtemplate = 'true'
AND
pc.parent_id = -1
)
);
我正在尝试导出包含 child 的类别列表。 数据库的设计者使 parent 类别可以具有与 child
相同的 ID所以查询应该 return 列表:
- Parent 项
- Child 项 parent 名称
我试图在 1 个查询中执行此操作,因此我执行了以下操作:
SELECT DISTINCT c.*, pc.name as parentName
FROM Category as c
INNER JOIN Category as pc on c.parent_id = pc.id
WHERE c.building_id = 1
AND (
c.parent_id = -1
OR (
c.usingtemplate = 'true'
AND
pc.parent_id = -1
)
);
但是 parent 不在列表中
我这里有一个sqlfiddle:http://sqlfiddle.com/#!7/75dd9/83
执行 LEFT JOIN 成功了
SELECT DISTINCT c.*, pc.name as parentName
FROM Category as c
LEFT JOIN Category as pc on c.parent_id = pc.id
WHERE c.building_id = 1
AND (
c.parent_id = -1
OR (
c.usingtemplate = 'true'
AND
pc.parent_id = -1
)
);