table a
(
aid int
)table b
(
bid int
b_aid int
)两个表,a和b,记录是一对多的关系,红色的 b_aid 是 aid 的外键,
我写了如下的查询select * from a left outer join b on a.aid=b.b_aid
group by b.b_aid结果是如果a表中有一条记录在b表中没有对应的b_aid, 就不会被这条SQL检索出,请问怎样修改才能让所有的a表中的记录全部显示啊?
(
aid int
)table b
(
bid int
b_aid int
)两个表,a和b,记录是一对多的关系,红色的 b_aid 是 aid 的外键,
我写了如下的查询select * from a left outer join b on a.aid=b.b_aid
group by b.b_aid结果是如果a表中有一条记录在b表中没有对应的b_aid, 就不会被这条SQL检索出,请问怎样修改才能让所有的a表中的记录全部显示啊?
order by b.b_aid
一定要group by,
因为我要统计 b表中有多少a相应的记录select count(b.b_aid) from a left outer join b on a.aid=b.b_aid
group by b.b_aid
A.aid, b.bid, b.b_aid
----- ------ --------
3 12 3
9 null null所以你按b_aid,进行group 则不行试试
select a.aid,count(b.bid)
from a left outer join b on a.aid=b.b_aid
orderby a.aid
LEFT JOIN UNION ALL RIGHT JOIN 来模拟FULL JOIN .