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