3 つのテーブル (*主キー+用、外部用)を検討してください。
User {*id:INTEGER, name:VARCHAR(45)}
Flight {*id:INTEGER, service:VARCHAR(45), departureDate:DATETIME}
Reservation { +userId, +flightId }
データ:
ユーザー:

フライト:

予約:

次のクエリは、 で旅行する乗客のリストを取得します2013-05-06。
SELECT *
FROM user u, flight f, reservation r
WHERE u.id=f.id AND r.userid=u.id AND r.flightid=f.id AND f.departureDate='2013-05-06'
私が持っている質問は次のとおりです。
SQL エンジンは WHERE 句をどのように扱いますか? 上記のクエリを参照すると、最初に r.userid=u.id によって r と f を組み合わせて一時データ テーブル T1 を形成し、次に r.flightid=f.id によって T1 と f を組み合わせて別の一時テーブル T2 を形成し、最後に DepartureData をフィルタリングします。 T2で?
句が次のように変更された場合、パフォーマンスに変化はあります
WHERE f.departureDate='2013-05-06' AND u.id=f.id AND r.userid=u.id AND r.flightid=f.idか? その場合、 f.departureDate='2013-05-06' は行を減らして一時テーブルを形成しますか?