1、有两个.dbf自由表文件,表结构相同,现在想根据关键字段ksh、sfzh比较两表,找出不一致的数据,这个SQL语句该怎么写?vf 6.0 中命令怎么写?请指教
2、现有一.dbf表,已经含有记录若干,但数据不全,现在想从另一表附加相关的字段到这个表里面,该怎么做?(具体点:a.dbf中只有一个字段:ksh,现在想从b.dbf中将tel1、tel2、bmddm等字段加入a.dbf)请指教

解决方案 »

  1.   

    select * from a where ksh not in(select ksh from b)
      

  2.   

    1、是找出ksh、sfzh相同,其他字段不同?
    还是找出sfzh相同,ksh不同的记录?
    2、
    SELECT A.KSH,tel1,tel2,bmddm ;
    FROM A A ,B B ;
    WHERE A.KSH=B.KSH ;
    INTO TABLE g:\AA.DBFDROP TABLE A
    RENAME TABLE AA TO A 
    RENAME TABLE 
      

  3.   

    最后多了一个
    RENAME TABLE 
      

  4.   

    1、找出两表中不相同的数据,可能表a中有而表b中没有,也可能表b中有而表a中没有,或者同一条记录都有,但ksh或sfzh字段有一个不相同,这些都要选出来
    2、FROM A A ,B B ;
    这句什么意思?原谅,菜鸟一个
      

  5.   

    from A A,B B;就是重新定义表A的别名是A,也可以写成 from A testa,或者更能说清楚些
      

  6.   

    那第一题这么写对吗? select * from a a,b b; where a.ksh != b.ksh or a.sfzh != b.sfzh 
      

  7.   

    基本上三步:表A 和 表B
    1、A join B 比较 字段值不同。 --选出表A 和 表B共有的数据,分析不同。
    2、A not exists B 比较 A 多于 B的部分。 --选出 表A 多于 表B 的数据。
    3、B not exists A 比较 B 多于 A的部分。 --选出 表B 多于 表A 的数据。
    语句如下:
    比较表A 和 表B 中 aa字段值不同,共同主键ID.
    1、select 表A.aa,表B.aa from 表A join 表B on 表A.ID=表B.ID
    2、select 表A.aa from 表A where not exists (select * from 表B where 表A.ID=ID and 表A.aa=aa)
    3、select 表B.aa from 表B where not exists (select * from 表A where 表B.ID=ID and 表B.aa=aa)
     
      

  8.   

    感谢几位楼上的,第二题大体思路已经明白了,就是筛选记录,创建新表,改名
    只是对from A A,B B; 不太理解,sql server 中好像是用inner join写的,还想没用过这样的
      

  9.   

    LZ是MySQL??select * from a a,b b
    where a.xxx=b.xxx--虽然要比较相同表的差异数据,仍应该有相同主键才好比较
    (a.ksh != b.ksh) or (a.sfzh != b.sfzh) --比较不同数据。