insert into grade.p_contact (studentid,userid) 
       select stu_id,id 
       from grade.follow,
        grade.p_user where grade.p_user.oid = (select grade.auth.o_id from grade.auth where grade.auth.user_id = grade.follow.user_id)
            and grade.p_user.id not in (select grade.p_contact.userid from grade.p_contact);
select * from grade.p_contact;

解决方案 »

  1.   

    语句有问题  grade.follow这个表没用到连接条件当中
      

  2.   

    以文本方式贴出 
    explain select ...
    show index from ..
    以供分析。
      

  3.   


    SELECT stu_id,
           id
    FROM   grade.follow,
           grade.p_user
           INNER JOIN (SELECT grade.auth.o_id
                       FROM   grade.auth) a
                   ON a.user_id = grade.follow.user_id
    WHERE  NOT EXISTS (SELECT 1
                       FROM   grade.p_contact
                       WHERE  grade.p_user.id = grade.p_contact.userid);