私はSQL経由で2つのテーブルを結合し、where句を追加します。結合は、where句の条件によって行われます。 where節がjoin節を期待しているかどうかに違いがあるかどうかは、大かっこでグループ化されているのだろうかと思います。結合の際に条件がグループ化されるかどうかはSQLで重要ですか?
例として質問してください:例1は例2と例3に相当しますか?
例1(なしグルーピング):
SELECT * FROM employees, vacation
WHERE employees.first_name = 'Maria' and vacation_start > 2017
AND employees.employee_id = vacation.employee_id
例2(句がグループ化されている参加以外のすべて):
SELECT * FROM employees, vacation
WHERE (employees.first_name = 'Maria' and vacation_start > 2017)
AND employees.employee_id = vacation.employee_id
例3(句に参加する最初の場合の引数である):
SELECT * FROM employees, vacation
WHERE employees.employee_id = vacation.employee_id
AND (employees.first_name = 'Maria' and vacation_start > 2017)
私はいつもデータベースがこの種のクエリを最適化すると想定していました。 しかし、それらは?私は主にMariaDBとSQLiteを使っています。
私は実際にテーブル関係を明確にするので、できる限り明示的な結合を優先します。しかし、クエリは、私がselect-from-joinバリアントを実行できないプログラミングライブラリの結果です。( – capfan
@capfan、 'JOIN'構文は1992年以降の標準構文です。ライブラリはサポートしていません。 –