我總是通過join來獲得某些東西的結果,然後只使用這些結果進行連接。Mysql查詢。 Join和SubQuery有什麼區別?
SELECT * FROM tbl AS t1
JOIN tbl2 AS t2 ON t1.id = t2.foreignId
JOIN tbl3 AS t3 ON t2.id = t3.foreignId
WHERE t1.date > SOMEDATE
從我的理解,它將運行where語句,並只獲得日期範圍內的結果。然後它會遍歷所有的t2,並且只嘗試匹配連接到t1的id(這可能會使結果更小)。然後用這個較小的潛在結果,它將爲T3做同樣的事情並輸出最終結果。
但它似乎不是這是如何工作?而這些表格會增加而不是變小。顯然,我上面描述的更像是子查詢? (注意,我說LIKE,我不知道subquerys是如何工作的)
JOIN如何工作,JOIN和子查詢之間有什麼區別?
我同時使用MySql和SQLite。我不知道這是否相關。
這不是一個MySQL的問題。它通常適用於任何SQL數據庫。 (就像這個用戶發佈的大部分類似問題一樣......) – 2012-06-22 20:49:46