我TABLE_A更快地工会表SQL
mode bank_id amount
'Outgoing' 1 100
'Incoming' 1 200
'Outgoing' 1 300
'Incoming' 2 200
我需要把它变成
from_bank_id to_bank_id amount
1 null 100
null 1 200
1 null 300
null 2 200
现在我做这个
SELECT
amount,
NULL AS from_bank_id,
bank_id AS to_bank_id
FROM TABLE_A WHERE mode = 'Incoming'
UNION ALL
SELECT
amount,
NULL AS to_bank_id,
bank_id AS from_bank_id
FROM TABLE_A WHERE mode = 'Outgoing'
这个SQL作品并给予我是我想要的输出。只是伸出手去查看是否有更好的方法来实现这一点而不用查询表格两次?
这是第二部分的第一部分的查询Reducing number of query for inner join when joining base on same table
注意有使用'UNION'这本身没有什么错,并且确实是一个'UNION ALL'会更快(在返回之前,而不是缓冲的结果)让结果立即返回。 – Dai