我對以下問題的性能因子有疑問。數據庫多個內部聯接
考慮一個表:用戶,
-----userId------- userName-----
1 ABC
2 XYZ
另一個表:交易,
------createdBy----ReceivedBy----TransactionId
1 2 50
2 1 51
我需要的結果是,
--------createdBy----ReceivedBy----TransactionId----userName_Creator-----userName_Receiver
1 2 50 ABC XYZ
2 1 51 XYZ ABC
我有兩個解決方案就出來了,
- 使用各種不同的內連接,
SELECT * FROM 事務T INNER JOIN ( SELECT createdBy,用戶名從交易 內部聯接 用戶
) ON createdBy = userId INNER JOIN ( SELECT ReceivedBy,userName FROM Transaction Inner Join Users ) ON ReceivedBy= userId WHERE TransactionId = 51
2。爲所有不同的userId和username維護一個hashmap,並通過查找來打包輸出數據層。
以下哪種解決方案最優?也更好的技術是受歡迎的。
--Siva
你爲什麼不使用真實的(內部)加入? –
這是一個內部連接,它只是使用不同的語法 –
@JoeLove Nevermind,我知道結果是一樣的,認爲性能是不同的,但顯然它不是。 –