将两个select语句与两个表中的字段进行比较

时间:2011-02-21 14:52:37

标签: sql

我有3个表,一个名为TRANSACTIONS的表具有from_account_id,另一个名为PAYMENTS的表具有to_account_id,第三个名为ACCOUNTS的表具有所有数据(来自帐号,from_account_id,to_account_id)以及account_owner_code是帐户所有者。帐户所有者在ACCOUNTS表中可能有多个帐号。

现在我希望找到不同所有者帐户之间的交易,所以确切地说,我想查找从帐户所有者A.acount_1234到accountOwnerB.acount56789的交易,而不是同一所有者的帐户之间的交易

问题是我不确定如何比较两者,因为我正在使用子选择。 有人可以帮忙吗?

 

来自评论的信息转录:

  • TRANSACTION_TABLE:ID,INPUT_AMOUNT,来自ACCOUNT_ID,说明
  • PAYMENTS_TABLE:ID,TO_AMOUNT,TO_ACCOUNT_NUMBER,COMMISSION,POST_DATE等
  • ACCOUNTS_TABLE:ID,ACCOUNT_NUMBER,BALANCE,OPEN_DATE,OWNER_CODE

1 个答案:

答案 0 :(得分:0)

假设: “交易”表中的ID值与每个“付款”表中的ID值相匹配。否则,我不确定你将如何保证你正在处理同一事件的双方 每个交易记录只有一个付款记录
所有交易和付款都有匹配的帐户记录。

条件:我讨厌子选择,如果我可以杀死他们。

Select ~whatever
From Transaction_Table t
  Inner Join Accounts_Table at on t.From_Account_ID=at.Account_ID
  Inner Join Payments_Table p on t.ID=p.ID
  Inner Join Accounts_Table ap on p.To_Account_ID=ap.Account_ID
Where at.Owner_Code != ap.Owner_Code