现有两张表:
 tableA,tableB,它们分别都有两个字段:bank_account(银行账号),amount(金额).现在需要用连接查询它们银行账号相同,金额相等且只有一条相等记录的SQL(也就是说查出来的结果:tableA跟tableB是一对一的关系,不能是一对多,多对一或者多对多的关系),如以下情况就不对,因为怎样连接查询出来会有2条数据。 tableA            
 bank_account   amount
   0001          2000
   0001          2000 tableB
 bank_account   amount
   0001          2000
谢谢各位。

解决方案 »

  1.   

    select dictinct * from tableA A,tableB B 
         where A.bank_account = B.bank_account 
         and A.amount = B.amount 这样关联出来结果不对么?
      

  2.   

    楼主这样不对,我希望:如果tableA有两条记录符合条件,tableB有一条符合条件;如果tableA有一条符合条件,tableB有两条符合条件;如果tableA有两条符合条件,tableB有两条符合条件。。 这些情况都不对,只有tableA有一条符合条件,tableB有一条符合条件才返回它们的记录。
      

  3.   

    加上distinct 
    还有将 * 换为你要输出的字段名称
      

  4.   

    select distinct * from tableA A full join tableB B 
         where A.bank_account = B.bank_account 
         and A.amount = B.amount 你是看看这个行不,还有就是你的结贴率太低了,没人愿意帮你回答,注意下
      

  5.   

    select a.bank_account, a.amount from 
      tablea as a, tableb as b
      where a.bank_account=b.bank_account
        and a.amount = b.amount
      group by a.bank_account, a.amount
      having count(*)=1
      

  6.   

    select a.bank_account,a.amount from tableA a,tableB b 
           where a.a1.bank_account=b.bank_account 
              and a.amount=b.amount
              and a.id not in (select a1.id from tableA a1,tableA a2 
                   where a1.bank_account=a2.a1.bank_account and a1.amount=a2.amount)
              and b.id not in(select b1.id from tableB b1,tableB b2                      where b1.bank_account=b2.a1.bank_account and b1.amount=b2.amount) 
      

  7.   

    SELECT 
    A.ACCOUNT, A.AMOUT
    FROM TABLEA A, TABLEB B
    WHERE A.ACCOUNT = B.ACCOUNT AND A.AMOUNT = B.AMOUNT 
    GROUP BY A.ACCOUNT, A.AMOUNT HAVING COUNT(1) = 1别跪着了,大冷天的,起来吧