我有一些表: 表A(cola1,cola2,cola3,cola4,cola5) tableB的(colb1,colb2) 表C(colc1,colc2,colc3) tableA.cola2指tableB.colb1 和tableA.cola3指tableC.colc1 我想從所有這些表中檢索數據,我一直在使用加入這樣的查詢:連接表
Select tableA.cola1, tableA.cola2, tableA.cola3, tableA.cola4, tableA.cola5, tableB.colb2, tableC.colc2, tableC.colc3
FROM tableA
INNER JOIN tableB ON tableA.cola2 = tableB.colb1
INNER JOIN tableC ON tableA.cola3 = tableC.colc1
WHERE tableA.cola5 = 'something'
那麼,是不是可以使用子查詢來寫這個查詢,而不是加入? 和什麼會更好?子查詢或JOIN? 我的一個朋友告訴我,當你有大表時,JOIN速度很慢,需要一臺強大的計算機,而子查詢速度更快,並且不需要強大的計算機來執行選擇。他說這是因爲子查詢返回的結果基於類似於加法的結果,並且基於乘法(我不擅長英語,因此我不知道如何放置這個,但希望你明白這一點)來重新獲得結果。我是新手,我嘗試過谷歌,但仍然無法理解。有人請抽空回答我的問題,並解釋這個子查詢vs JOIN對我來說?非常感謝你。
MySQL查詢優化器將有可能把兩個連接和子查詢相同。如果性能是一個問題,只需確保連接的列是索引的。 – Owen