私は次のように2つのSQLクエリを持っています
SELECT rc.stateId,rs.stateName FROM
(SELECT DISTINCT cityid FROM HolidayPackageCity) AS hpc
INNER JOIN
(SELECT cityid,stateid FROM RegCity WHERE countryCode='IN' AND stateId IS NOT NULL) AS rc
ON hpc.cityId=rc.cityId
INNER JOIN
RegState AS rs
ON rc.stateId=rs.stateId
vs
SELECT DISTINCT rc.stateId,rs.stateName
FROM HolidayPackageCity AS hpc
INNER JOIN
RegCity AS rc
ON hpc.cityId=rc.cityId
INNER JOIN
RegState AS rs
ON rc.stateId=rs.stateId
WHERE rc.countryCode='IN' AND rc.stateId IS NOT NULL
最初のクエリでは、最初に特定のテーブルのデータをフィルタリングしてから結合を適用し、2番目のテーブルでは最初に結合を適用してからwhere条件を適用してデータをフィルタリングします。私が知りたいのは、どちらが速いのか、そしてその理由です。