具体需求是这样的:
表 corp中是公司客户信息 ,有id name字段;表admin中有客户管理员id,name字段,表visit是客服管理员拜访公司客户记录,有id,corp_id,admin_id,visit_time等 字段,现想查询 两周内没拜访的公司id name 及相应的管理员id name信息。

解决方案 »

  1.   

    想查询 两周内没拜访的公司id name 及相应的管理员id name信息。
    查询一个表中有的,但另一个相关联表中没有的记录及时间小于两周的数据-------------------------------以那个表为基准?以公司为准还是以管理员为基准?
    建议说清楚点吧
      

  2.   

    select id from corp where id not in (select corp_id from visitwhere visit_time>date_sub(now(),interval 2 week))但你的corp.id 如何找到对应的管理员 id ?这里缺少一个对应关系。 假设你的 visit 表为空的情况下。
      

  3.   

    管理员 表里有 corp_id 有外键关联的
      

  4.   

     
    能把这句话猜出来的人不多。问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)select corp.id,admin.id from corp,admin
     where admin.corp_id=corp.id
     and corp.id not in (select corp_id from visitwhere visit_time>date_sub(now(),interval 2 week))
      

  5.   

    把admin.corp_id=corp.id这个条件 放在后边  有区别吗?
      

  6.   

    select a.id,a.name,b.id,b.name from corp a,admin b
     where b.corp_id=a.id
     and not exists (select 1 from visit c where c.corp_id=a.id and c.visit_time>date_add(now(),interval -2 week))
      

  7.   


    没有,MYSQL会自行优化的。
      

  8.   

    我一直做些web开发,没遇到过复杂点的sql。多谢大家帮忙,我想补充下sql,大家有什么好书吗?或什么学习方法啊
      

  9.   

    按照你们的例子写了一个sql SELECT DISTINCT c.uid, c.address,c.name,c.tel,a.first_name custName,DATE_FORMAT(u.last_login,'%Y-%m-%d %H:%i') lastLogin,DATE_FORMAT(c.reg_time_on_zfa,'%Y-%m-%d %H:%i') regTimeOnZfa, DATE_FORMAT(u.last_update_time,'%Y-%m-%d %H:%i') lastUpdateTime,DATE_FORMAT(ue.last_visit_time,'%Y-%m-%d %H:%i') last_visit_time FROM zfa_corp c, zfauser_admin a, zfauser_extend ue, zfa_visit v, zfauser u WHERE ue.uid = c.uid  AND ue.customer_id = a.uid AND c.uid =u.uid AND c.uid NOT IN (SELECT v.corp_id FROM zfa_visit v WHERE v.record_time > DATE_SUB(NOW(),INTERVAL 2 WEEK))不知道为什么 有重复 呵呵
      

  10.   

       我的意思是没加distinct的话  就有重复