select * from member_table where service_id <>0 and  (member_id  not in (SELECT A.user_email
FROM `msgbook` A, member_table B
WHERE A.user_email = B.member_id
GROUP BY A.user_email))其中b.member_id 是用EMAIL来填写的,我查找的时候:SELECT A.user_email
FROM `msgbook` A, en_member_table B
WHERE A.user_email = B.member_id
GROUP BY A.user_email
是没有问题的,
但是放一块之后就执行不了了

解决方案 »

  1.   

    我的本意是从 member_table 中过滤掉  msgbook 中已经存在的EMAIL的
      

  2.   

    如果 select * from member_table where service_id <>0 and (member_id not in (SELECT A.user_email
    FROM `msgbook` A, member_table B
    WHERE A.user_email = B.member_id
    GROUP BY A.user_email))中把 NOT 去掉 ,可以进行查询,但是很慢,需要22多秒,加上NOT之后数据库就崩了,
      

  3.   

    select * 
    from member_table b left join user_email a on A.user_email = B.member_id
    where a.user_email is null或者
    select *
    from member_table
    where not exists (select 1 from user_email where user_email=member_table.member_id)
    建议在user_email表中添加user_email的索引以提高速度当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html