例如A表:id  user1   zhangsan
2   lisi
3   ermazi
例如B表id  usn
1   ada
2   lisi取出A表中 user ,与B表中中的 usn 不同的那些记录。

解决方案 »

  1.   

    select * from A where user not in (select usn from b);
      

  2.   

    select * from A where not exists(select 1 from B where usn=A.user);
      

  3.   

    select * from A where user not in(select A.id,A.user from A,B where A.user=B.usn)  
      

  4.   


    select user from A a where id not in (select B.ID from B b where a.id=b.id)
      

  5.   

    来晚一步
    select * from A where user not in(select A.id,A.user from A,B where A.user=B.usn) 
      

  6.   


    select * from A where user not in(select A.user from A,B where A.user=B.usn)  
    修正下!
      

  7.   


    select user from A a where user no in (select usn from B bwhere a.user=b.usn);
      

  8.   

    我这两个表不是在同一个服务器下的啊
    用PHP怎么搞啊
      

  9.   

    我这两个表不是在同一个服务器下的啊
    用PHP怎么搞啊
      

  10.   

    这个要两个服务器上都有接口才能实现的.
    在B服务器上: http://B/b.php
    在A服务器上: http://A/a.phpb.php 代码大体如下
    ----------------------
    $un = $_GET['un'];
    ...
    查询 B表中有没用 $un
    ...
    if(有){
      echo 'Y';
    } else {
      echo 'N';
    }a.php 代码大体如下
    ------------------------------
    ...
    $data = 查询表A中的记录foreach($data as $row) {
      
      $url = "http://B/b.php?un=".$row['user'];
      $result = fopen($url);
      if($result=='Y'){
        echo '有记录'
      } else {
        echo '没用记录';
      }
    }------------------------------
    以上方法是使用了 fopen 实现,使用时访问a.php, a.php 再去查询b.phpfopen 要求服务器 allow_url_fopen = on (一般都支持)
    fopen 是GET方式提交数据的,想要用POST方式可以
    参考 CURL 或 PEAR的HTTP包
    以上是基本思路,具体编码时需要优化的地方还很多
    数据量大时,php服务器会超时,尽量配合前台js限制每次查询数量
      

  11.   

    select user from A where user not in (select usn from B);
      

  12.   

    方法一-- 分别读出A和B表的记录, 放进二维数据, 再整合-- 假如两个表的結果放在这两个二维数据里$resA , $resB , 如下$res = array();
    foreach($resA as $rowA){
        foreach($resB as $rowB){
            if( $rowA['user'] != $rowB['nsn'] ) $res[] = $rowA;
        }
    }//最后$res就是你要的結果, 没测试过, 思路大概是这样,
    //不知你具体情况怎么样, 如果你把数据读成一维数据, 里面那个循环就不用了, 更效率
    方法二, 
    就是把数据少的那个表读出, 再插入另一个数据库,用七楼那条查询語句搞定
      

  13.   


    $conn1=mysql_connect('11.11.11.11','auser','apassword')or die("A连接失败:".mysql_error());
    $conn2=mysql_connect('22.22.22.22','buser','apassword')or die("B连接失败:".mysql_error());
    mysql_select_db('a',$conn1);
    mysql_select_db('b',$conn2);
    $sqla="select user from A";
    $rs=mysql_query($sqla,$conn1);
    while($rw=mysql_fetch_row($rs)){
     $sqlb="select usn from B where usn=".$rw[0];
     $rsb=mysql_query($sqlb,$conn2);
     $row=mysql_fetch_row($rsb);
    if(count(trim($row[0]))>0){
      //echo "相等";
    }else{
     echo $rw[0]."<br>";
    }}输出的结果就是你要的了!
      

  14.   


    不过数据量大时, 建议两个表的数据读出后处理, 一次一次地查询B表, 毕竟比在php处理慢