select u.id, s.teacherid, '标题:' || m.title, m.content
  from usercourse uc,
       users u,
       schedules s,
       (select *
          from msong
         where trunc(cdate) =
               (select next_day(last_day(trunc(sysdate, 'mm')) - 7, '星期三') - 1
                  from dual)) m
 where s.usercourseid = uc.id
   and uc.userid = u.id
   and s.ltime > sysdate
   and s.status = 6
   and s.cp = 'C'
   and u.cs = 6
   and trunc(to_date(uc.fdate, 'yyyy-mm-dd hh24:mi:ss')) >=
       trunc(sysdate) + 7我老查出重复的数据,怎么办?content是clob类型的!

解决方案 »

  1.   

    别名为m的子查询(表)与其它三个表usercourse uc,users u,schedules s
    缺少关联条件
      

  2.   

    1.缺少关联条件
    2.确实有重复数据,看一看有没有关联条件中有null值的
      

  3.   

    就是没懂怎么去掉重复数据啊,我用distinct和group by,都不行,因为content是clob类型的!那M表本来就和其他3张表没关系,但是我又必须得用那表里的数据。
      

  4.   

    不明白你什么意思,都没关系了还为什么要用?你不如描述下表间逻辑关系,以及你想达到的目的,这样大家才能帮你出主意。扔个大sql上来给我们看天书么
      

  5.   

    insert into mail (id,userid, teacherid,title,content,type)我要执行这句,数据就是从上面的SQL语句得到。
    u.id对应userid, s.teacherid对应teacherid, '标题:' || m.title对应title, m.content对应content. 
    m表是单独的,我需要表里的title和content,userid和teacherid则是另外3张表里得到的.