现有两张表:
 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 * 
    FROM(SELECT DISTINCT * FROM tableA ) A JOIN (LECT DISTINCT * FROM tableB) B
    ON A.bank_account=B.bank_account AND A.amount=B.amount
      

  2.   

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

  3.   

    select A.* FROM 
    (
    select bank_account,amount from tableA group by  bank_account,amount having(count(*)=1))A,
    (
    select bank_account,amount from tableB group by  bank_account,amount having(count(*)=1)
    )B
    WHERE A.bank_account=B.bank_account AND A.amount=B.amount  
      

  4.   

    select m.* , b.* from (select distinct * from a) m , n where ........
      

  5.   

    select *from tableA
    intersect
    select * from tableB