これに対する明確な答えと、決定的でない私のテストが見つかりません:
定数と等しい (または別の関係にある) 結合のテーブルに列がある場合、条件を ON にした方が速いですか? それとも最後にどこで?
例:
SELECT * FROM `" . BLABLA . "` as `s`
JOIN `" . BLABLABLA . "` AS `sDet` ON (`sDet`.`a` > '" . $R['a'] . "'
AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d`
AND `s`.`id` = `sDet`.`idDet`
)
WHERE `s`.`f` = 'whatever'
または
SELECT * FROM `" . BLABLA . "` as `s`
JOIN `" . BLABLABLA . "` AS `sDet` ON (`s`.`id` = `sDet`.`idDet`)
WHERE `s`.`f` = 'whatever'
AND '" . $R['b'] . "' BETWEEN `sDet`.`c` AND `sDet`.`d`
AND `s`.`id` = `sDet`.`idDet`
最初のバージョンの方が速いはずだと思っていましたが、よくわかりません。何かご意見は?