问题:
MySql5现有两个相同结构的表A,B(字段一模一样)
Create Table A
(
   chr1 varchar(20) primary key,
   chr2 varchar(20),
   chr3 varchar(20),
   chr4 varchar(20),
   chr5 varchar(20),
   chr6 varchar(20),
   chr7 varchar(20)
)Create Table B
(
   chr1 varchar(20) primary key,
   chr2 varchar(20),
   chr3 varchar(20),
   chr4 varchar(20),
   chr5 varchar(20),
   chr6 varchar(20),
   chr7 varchar(20)
)
现A与B的数据都是一样, 如果B的数中chr2,chr3,chr4,chr5,chr6,chr7中的任何一个字段有改动后,用什么最快的查到出是哪条记录?
不使用Trigger

解决方案 »

  1.   

    select b.chr1 from B b, A a where b.chr1 = a.chr1 and not (b.chr2=a.chr2 and b.chr3=a.chr3 and b.chr4=a.chr4 and b.chr5=a.chr5 and b.chr6=a.chr6 and b.chr7=a.chr7)如果支持minus语法,
    select * from B minus select * from A就可以了。(好像mysql不支持)
      

  2.   

    select * 
    from a inner join b on a.chr1=b.chr1
    where a.chr2!=b.chr2
    or a.chr3!=b.chr3
    or a.chr4!=b.chr4
    or a.chr5!=b.chr5
    or a.chr6!=b.chr6
    or a.chr7!=b.chr7
      

  3.   

    not (A and B and C) 

    !A or !B or !C
    是等效的。