学生表
001   王二   长江路1号
002   张三   思创路5号考试表
001   70分
001   69分
002   80分
002   76分
002   85分
输入:学生姓名:例如:“王二”
要求的查询结果:学号 姓名   地址     考试次数
001,王二,长江路1号, 2次

解决方案 »

  1.   

    select a.*,b.次数 from 学生表 a,(select 编号,count(1) as 次数 from 考试表 group by 编号)b
    where a.编号=b.编号
      

  2.   

    select a.*,isnull(b.次数,0) as 次数 from 学生表 a left join (select 编号,count(1) as 次数 from 考试表 group by 编号)b
    on a.编号=b.编号存在没有考试记录时用left join 
      

  3.   

    select a.bh,name,address,count(b.sc) as cnt
    from stu a
    left join sc b on a.bh = b.bh
    group by a.bh,name,address
      

  4.   

    一对多吧
    一时还真的想不起来
    得补下sql了
      

  5.   


    我测试了,“select a.bh,name,address,count(b.sc) as cnt”发生错误,选择列表中的列 'stu.Name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。选择列表只能保留a.bh 和 count(b.sc) as cnt不解啊?
      

  6.   

    那么,结贴了,感谢happyflystone,roy_88, eriato,luckdly!我觉得happyflystone的句子直观明了,很受启发,所以先把分数给happyflystone。