LIMIT
メインテーブルとを含むクエリがありますJOIN
。
私の質問は次のとおりです。何が前に来るのですか?クエリはのx
行を見つけLIMIT
てJOIN
からこれらの行に実行するか、最初JOIN
にすべての行で実行し、その直後に実行しLIMIT
ますか?
LIMIT
メインテーブルとを含むクエリがありますJOIN
。
私の質問は次のとおりです。何が前に来るのですか?クエリはのx
行を見つけLIMIT
てJOIN
からこれらの行に実行するか、最初JOIN
にすべての行で実行し、その直後に実行しLIMIT
ますか?
LIMIT
適用されるクエリに適用されます。これは、そのJOIN
クエリのsの後にクエリに適用されますが、派生テーブルが他のテーブルに編集されている場合は、その/それらが後に続きます。JOIN
JOIN
例えば
SELECT ..
FROM (SELECT ..
FROM TABLE1 T1
JOIN TABLE2 T2 ON ..
LIMIT 10) X
JOIN OTHERTABLE Y
LIMIT 20;
JOIN
T1とT2の間が最初に発生しますLIMIT
前のステップの結果に10が適用されるため、この派生テーブルの10レコードのみが外部クエリで使用されます。LIMIT
JOIN
XとYの間の結果に20が適用されますLIMITはPostgreSQL、MySQL、SQLiteの特定のキーワードですが、TOPキーワードとSQLServerでの処理は同じように機能します。
最初にすべての行で JOIN を実行し、その直後に LIMIT を実行します