我有两个表 A , B ,两表结构一样 .现我要 从 A 表里取一条数据,到B表里去找,找到了,继续从 A 表里取第二条数据到B表里去找。如此循环。注意,B 表里的数据是会每天增加的。 这个sql语句应该怎么写

解决方案 »

  1.   

    select * from a,b where a.字段名=b.字段名
    类似于这种写法,中间可以省略很多步骤,但SQL语句的速度我不能保证
      

  2.   

    具体的说把我是用一个函数和表字锻一样多的参数传直过来。能后去比对A表里的数据,如果存在数据一样就再次调用函数,传新的参数直。如果不存在就退出。我目前的写法是这样的 select a,b,c,d,e,f from A where a=变量1 and b=变量2 and c=变量3 .....,注意函数是被程序循环调用,所以参数直是变化的。
      

  3.   

    列出A表中記錄能在B表中找到的
    select * from A where EXISTS(select * from B where B.ID=A.ID)
    列出A表中記錄能在B表中找不到的
    select * from A where NOT EXISTS(select * from B where B.ID=A.ID)
      

  4.   

    為什麼用循環做,直接用SQL語句選出來不就行了
      

  5.   

    直接后台写,执行起来很快。如果是ACCESS之类的本地库,相信也不会是大量的数据,一条条来还是可以忍受
      

  6.   

    haipingma(今天你过得快乐吗?) 的方法不是说了好明确了吗?你的意思应该是说,如果拿B的数据和A一直比较,直到B中有一个数据A里面没有,那么函数就退出,是吗?那样之的话, haipingma(今天你过得快乐吗?) 就已经给出答案了,你也可以直接这样判断:select * from a where a.id not in (select id from b)如果上面查出有数据的话,那么B表中就存在A表里面没有的数据,那样子退出程序就好了。
      

  7.   

    roger_xiong(卖女孩的小火柴~)  select * from a where a.id not in (select id from b) 你这只能比一个字锻,我要的是整条数据完全相同,这样做的花会不会很慢?
      

  8.   

    楼主,你会INNER JOIN吗?会的话就可以SELECT了,不会的话就去看有关资料,磨刀不误砍柴功,你这种循环的做法也太那个了。
    select 表1.a,表1.b from 表1 inner join 表2 on 表1.a=表2.a and 表1.b=表2.b上面已经有人用到了子查询,一样可以达到你的目的,不过速度比内连接要慢许多。