WebSQL选择子+父

时间:2015-11-26 10:49:08

标签: sql web-sql

我试图用它的孩子输出一个类别列表。 DB的设计者使得父类别可以具有相同的孩子ID

所以查询应该返回一个列表:

  • 父项
  • 父母姓名为
  • 的子项

我试图在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
  )
);

但是父母不在列表中

我这里有一个sql小提琴:http://sqlfiddle.com/#!7/75dd9/83

1 个答案:

答案 0 :(得分:0)

执行 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
  )
);