首先感谢大家的回复。
表A如下
id       class 
a        b
a       b1
c       d
e       f
=====
表B如下
id       class       check
a        b            1
a        b1          0
=====
现在,就可以把A表中的
c     d
e     f
放入到表b中去。
感谢您的回复。

解决方案 »

  1.   

    INSERT INTO  B
    SELECT  * ,
            0
    FROM     A
    WHERE   NOT EXISTS ( SELECT *
                         FROM    B
                         WHERE   A.id =  B.id
                                AND  B.class =  A.class );SELECT * FROM  B 
      

  2.   

    谢谢。
    我希望B表结果如下:
    表B如下
    id       class       check
    a        b            1
    a        b1          0
    c       d
    e       f
      

  3.   

    表B如下
    id       class       check
    a        b            1
    a        b1          0
    c       d             0
    e       f              0

    check字段,在刚从A表拿来插入时候,初值是0,然后在其他条件下,会被更新成1
      

  4.   

    首先,看表A,也就是 view_aaa 的数据,如下
    SELECT uid, class2 FROM view_aaa ;  这句话,执行正常
    uid  class2
    4    134
    4    135
    5    135
    6    135
    ===============然后,看表B,也就是 shizi_certificate_member (师资授权)的前两列的数据,来自于表A的uid, class2,最开始为空.以下语句指行正常:
    SELECT view_aaa.uid, view_aaa.class2 FROM view_aaa, shizi_certificate_member 
    WHERE view_aaa.uid=shizi_certificate_member.uid
    and view_aaa.class2 = shizi_certificate_member.columnid
    ==============================
    uid   class2
    结果为空,因为 shizi_certificate_member 本身为空。最后,上面两个sql语句结合起来看:
    SELECT uid, class2 FROM view_aaa 
    WHERE   NOT EXISTS (SELECT view_aaa.uid, view_aaa.class2 FROM view_aaa, shizi_certificate_member 
    WHERE view_aaa.uid=shizi_certificate_member.uid
    and view_aaa.class2 = shizi_certificate_member.columnid);
    执行结果如下:
    [SQL]#SELECT * FROM view_aaa
    #SELECT uid, class2, 0 FROM view_aaa;SELECT uid, class2 FROM view_aaa 
    WHERE   NOT EXISTS (SELECT view_aaa.uid, view_aaa.class2 FROM view_aaa, shizi_certificate_member 
    WHERE view_aaa.uid=shizi_certificate_member.uid
    and view_aaa.class2 = shizi_certificate_member.columnid);
    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT view_aaa.uid, view_aaa.class2 FROM view_aaa, shizi_certificate_member 
    ' at line 5我现在还没有明白,为何出错了。
    还请大家来帮帮我吧,非常感谢大家
      

  5.   

    MYSQL版本是什么?是否支持 NOT EXISTS
      

  6.   

    not exists 可以执行的,不存在不支持的问题。
      

  7.   

    我处理了一下,脚本如下。insert into shizi_certificate_member (uid, columnid) 
    SELECT view_aaa.uid, class2 FROM view_aaa 
    WHERE NOT EXISTS(
     select view_aaa.uid, view_aaa.class2 from shizi_certificate_member, view_aaa
     WHERE view_aaa.uid = shizi_certificate_member.uid 
    and  view_aaa.class2 = shizi_certificate_member.columnid )请批评指点,看看有没有错误。
    感谢您的回复。
      

  8.   


    insert into shizi_certificate_member (uid, columnid) 
    SELECT view_aaa.uid, class2 FROM view_aaa 
    WHERE NOT EXISTS(
     select 1 from shizi_certificate_member, view_aaa
     WHERE view_aaa.uid = shizi_certificate_member.uid 
    and  view_aaa.class2 = shizi_certificate_member.columnid )