楼主,没有太仔细看你的问题,既然上面cloudchen(cloudchen)给出来了,我就在他的基础上修改吧 你到时候按照原方法修改一下 select min(a.aname),count(*) from a,b,c where a.aid = b.aid and b.bname = '条件' and (b.bid not in (select distinct bid from c ) or b.bid = c.bid ) group by c.bid 你看看如何
select min(a.name),count(*) from a join b on a.aid = b.bid left join c on b.bid = c.bid where b.bid = '条件' group by b.bid
select min(a.name),count(*) from a join b on a.aid = b.bid left join c on b.bid = c.bid where b.bid = '条件' group by b.bid ------------------------------------------------------------ 按照这个方法,null值记录可以取出,但是显示的不是0条记录,而是1条,这是怎么回事呢?
你到时候按照原方法修改一下
select min(a.aname),count(*) from a,b,c where a.aid = b.aid and b.bname = '条件' and (b.bid not in (select distinct bid from c ) or b.bid = c.bid )
group by c.bid
你看看如何
where b.bid = '条件'
group by b.bid
select min(a.name),count(*) from a join b on a.aid = b.bid left join c on b.bid = c.bid
where b.bid = '条件'
group by b.bid
------------------------------------------------------------
按照这个方法,null值记录可以取出,但是显示的不是0条记录,而是1条,这是怎么回事呢?
子id=父id
必须否则肯定会得不到你所需的结果
只要抓住一个关键的问题就是
子id=父id
必须否则肯定会得不到你所需的结果
--------------------group by 是存在null值取不到的现象的,我是想知道怎么解决这个问题
select a.name,count(c.bid) as ccount from a join b on a.aid = b.bid left join c on b.bid = c.bid
where b.bid = '条件'
group by b.bid