我有一个父/子/孙类型的表关系定义如下得到计数数据:子查询中使用查询值从另一个表
表A: 的parentID 描述
tableB的: childID的 parentId的 描述
表C: grandchildID childID的 描述 项目完成
我需要编写一个查询,它将列出tableB中任何给定parentID的所有记录,以及grandchild记录的总数和已完成的grandchild记录的总数(其中itemComplete = true)。
parentID将成为where子句(select * from tableB where parentId = x)的一部分。我无法弄清楚的问题是如何从tableC中获取计数,因为计数取决于childId的当前行值。
换句话说,我需要某种形式的查询,看起来像:
select description,
(select count (*) from tableC where childId = X) as Items,
(select count (*) from tableC where childId = X And itemComplete = true) as CompleteItems
from tableB where parentId=Y
其中x是tableB的当前行的childID的。我如何在子查询中引用每行的childId以获取项目数量和项目数量?
谢谢了!完美的作品。 +1替代,更好的建议与左外连接。 –