作业表: 
ID---KEY---作业名称---布置者 
zy1--k5----XX作业----XX老师 
zy2--k6----SS作业----TT老师 
zy3--k7----JJ作业----QQ老师 
zy4--k8----OO作业----UU老师 
问题表: 
ID---KEY----所属作业ID---createtime---updatetime 
1----k1------zy1---------2008/8/7-----2008/8/7 
2----k2------zy1---------2008/8/7-----2008/8/7 
3----k3------zy2---------2008/8/7-----2008/8/7 
4----k4------zy3---------2008/8/7-----2008/8/7 
修改记录表: 
ID---问题id-----修改者----修改日期 
1------4--------张三-----2009/7/7 
2------4--------张三-----2009/8/7 
3------4--------王五-----2010/7/7 
4------4--------张三-----2009/7/7 
5------5--------张三-----2009/7/7 ※一个人可修改多个问题,可重复修改同个问题多次 
查出下面的效果: 1. 
作业key---作业name------- 日期------- 问题量 
key ----我给的作业名----我给的日期-----问题量 
2. 
作业name---修改者----修改日期----修改过的问题总量 
SS作业------张三----我给的日期--------4--- 我给的日期:可能只有年份或者年月,或者年月日 成了 第2天再加100分  = = 拜托了

解决方案 »

  1.   

    表与表通过什么字段连接?
    select a.key,a.作业名称,b.count(b.所属作业ID)  from 作业表 a
    inner join 问题表 b on a.ID=b.所属作业ID
    group by a.key,a.作业名称
      

  2.   

    纠正下问题表: 
    ID---KEY----所属作业KEY---createtime---updatetime 
      

  3.   

    重新确认对应关系:
    作业表 key->问题表 所属作业KEY问题表 KEY->修改记录表 问题id
    是这样吗?
      

  4.   

    作业表: 
    ID---KEY---作业名称---布置者 
    zy1--k5----XX作业----XX老师 
    zy2--k6----SS作业----TT老师 
    zy3--k7----JJ作业----QQ老师 
    zy4--k8----OO作业----UU老师 
    问题表: 
    ID---KEY----所属作业KEY---createtime---updatetime 
    1----k1------zy1---------2008/8/7-----2008/8/7 
    2----k2------zy1---------2008/8/7-----2008/8/7 
    3----k3------zy2---------2008/8/7-----2008/8/7 
    4----k4------zy3---------2008/8/7-----2008/8/7 
    修改记录表: 
    ID---问题id-----修改者----修改日期 
    1------4--------张三-----2009/7/7 
    2------4--------张三-----2009/8/7 
    3------4--------王五-----2010/7/7 
    4------4--------张三-----2009/7/7 
    5------5--------张三-----2009/7/7 
    问题表的“所属作业KEY”来自作业表的“作业KEY” 修改表的“问题id”来自问题表的ID
    参考语句:
    select a.作业KEY,a.作业名,date_format(b.问题创建日期,'%y-%c-%e'),count(问题ID) from 作业表 a left join 问题表 b on a.作业KEY=b.所属作业KEY group by a.作业key,a作业名,date_format(b.问题创建日期,'%y-%c-%e') having a.作业名='我给出的作业名' 这样查询出来的是我给出的作业名,所有创建问题那一日分别有多少问题量
    作业KEY--------作业名----------------日期----------------数量 
    123-----------我给的作业名---------2008-7-7-------------5 
    123-----------我给的作业名---------2008-8-7-------------50 
    123-----------我给的作业名---------2019-7-7-------------15 
    我要的结果与这个不同的是 作业名和日期都是我给出的
      

  5.   

    1) 关键是双表链接  作业key---作业name------- 日期------- 问题量 作业表 table1 : (ID---KEY---作业名称---布置者 )
    与  问题表 table2:(ID---KEY----所属作业ID---createtime---updatetime) 关联,依靠 所属作业ID 
      sql = select  table1.key ,table1.name,table2.createtime ,COUNT(*) AS Expr1 from table1,table2 where table1.Id=table2.table1Id group by  table1.key ,table1.name,table2.createtime ; 和你要的结果是一样的~~~也许不够精简~~可以根据这个思路修改,或者自己再优化出更好的语句第2个问题和第一个是类似的,只是关联的表换成了表二和表3,但方法是一样的 2表链接    分组    统计 
      

  6.   


    我要的结果与这个不同的是 作业名和日期都是我给出的 加入条件不行?select a.作业KEY,a.作业名,date_format(b.问题创建日期,'%y-%c-%e'),count(问题ID)from 作业表 a left join 问题表 bon a.作业KEY=b.所属作业KEY where a.作业名='我给出的作业名'
    and date_format(b.问题创建日期,'%y-%c-%e')=我给出的日期group by a.作业key,a作业名,date_format(b.问题创建日期,'%y-%c-%e')