SQL-从嵌套查询中访问列

时间:2012-08-11 18:40:20

标签: sql sqlite

我的表是这样的:

_id     time    name    isNotFirstEntry
1       55555   aaa     0
2       66666           1
3       77777           1
4       88888   bbb     0
5       99998           4
6       99999           4

即。对于重复条目,name为空,原始条目的_id存储在isNotFirstEntry中。

我想要检索_id,时间,名字,不。重复条目为n,其中name!= null

我试过这样的事情: select _id, time, name, (select count(isNotFirstEntry) from mytable where isNotFirstEntry=_id) as n from mytable where name!=null

但当然不起作用。嵌套查询中的_id与外部部分的_id不同。我需要从嵌套查询中访问外部的_id。

我使用的是android sdk,所以我只能使用sqlite。

1 个答案:

答案 0 :(得分:1)

您需要加入。您可以将此作为相关子查询执行:

select mt._id, mt.time, mt.name,
       (select count(mt2.isNotFirstEntry)
        from mytable mt2
        where mt2.isNotFirstEntry=mt._id
       ) as n
from mytable mt
where mt.name!=null

或者作为与group by的明确联接:

select mt._id, mt.time, mt.name, count(mt2._id) as n
from mytable mt left outer join
     mytable mt2
     on mt._id = mt2.isNotFirstEntry
where mt.name is not null
group by mt._id, mt.time, mt.name