我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