+ -
当前位置:首页 → 问答吧 → 求一条SQL语句

求一条SQL语句

时间:2011-11-19

来源:互联网

有两个表 一个是所有活动表 一个是学生参加完活动的经历表 , 他们是一对多的关系, 其中的经历表中有个字段biaoshi 它的值为1 的话为经历待批状态,为2的话 为经历已批状态 现在想查询出所有的活动 及该活动下得待批状态下得经历的记录数。


 这是我写的 

select hd.id, hd.hd_name,hd.hd_zhubandanwei,hd.hd_zhubantime,hd.hd_yipirenshu,count(jl.id) from myhuodong hd full join myjingli jl on hd.id=jl.hdid where hd.hd_zhongcengzhuangtai=2 and hd.hd_gaocengzhuangtai=5 and jl.jl_biaoshi=1 group by hd.id,hd.hd_name,hd.hd_zhubandanwei,hd.hd_zhubantime,hd.hd_yipirenshu order by hd.id desc

但是有个问题 当经历表中没有针对某个活动的记录是 这个活动表中的活动 就不显示了 本应该显示活动的相关信息 和count(jl.id ) 为0的 但是现在为O的话 就不显示了 希望各位帮帮我

作者: lzc754225010   发布时间: 2011-11-19

full join 改为 left join 试试

作者: josy   发布时间: 2011-11-19

看不懂.
貌似可以采用左连接,然后用 sum(case when jl=* then 1 else 0 end) 来统计.

作者: qianjin036a   发布时间: 2011-11-19

引用 1 楼 josy 的回复:

full join 改为 left join 试试


左连接也试了 跟 full join 是一个效果 也是 经历表中为0的活动 都不显示

作者: lzc754225010   发布时间: 2011-11-19

count(isnull(jl.id,0))

作者: hllfl   发布时间: 2011-11-19

先分组统计,然后再左连接,为空的使用isnull(列名,0)

作者: dawugui   发布时间: 2011-11-19

能不能给点测试数据来看看?

作者: fredrickhu   发布时间: 2011-11-19

热门下载

更多