擅长:python、mysql、java
<p>要直接获得所需的输出,可以执行以下操作:</p>
<pre><code>SELECT *
FROM TableA a
LEFT JOIN TableB b ON on A.ID = B.ID AND A.AMOUNT = B.AMOUNT
AND
(
(a.Bank = 'Barclays' AND b.bank = 'aa') OR
(a.Bank = 'tesco' AND b.bank = 'bb') OR
(a.Bank = 'HSBC' AND b.bank = 'cc') OR
(a.Bank = 'Lloyds' AND b.bank = 'dd') OR
(a.Bank = 'MBNA' AND b.bank = 'ee')
)
</code></pre>
<p>但是如果您有数百个映射,这是一个丑陋的解决方案。它还假设(Bank,ID,Amount)是这两个表的PK。最好的方法是有一个链接/映射表,如上面建议的MorbidGnome,并将其包含在连接中。在</p>
<p>如果您没有从TableB中提取任何数据(如您的示例中所示),那么您可以使用CASE语句而不是连接到TableB:</p>
^{pr2}$