だから私は3つのテーブルを得ました:
Locations (LocationID [PK])
Track_Locations (TrackID [FK], LocationID [FK])
Tracks (TrackID [PK])
私は iPhone 用のアプリを作成していJOIN
ますが、サブクエリよりもおそらく高速に動作すると言われました。これは本当ですか?私は周りを検索しましたが、これに対する直接的な答えを見つけることができず、この場合に何を使用するのが最適かを知りたいです.
どちらの場合も、クエリは次のようになります。
サブクエリ:
SELECT LocationID, TimestampGPS, Longitude, Latitude, ...
FROM locations
WHERE LocationID
IN (SELECT LocationID FROM track_locations WHERE TrackID = ?)
使用JOIN
:
SELECT l.LocationID, l.TimestampGPS, l.Longitude, l.Latitude, ...
FROM locations l
JOIN track_locations tl
ON (l.LocationID = tl.LocationID)
JOIN tracks t
ON (t.TrackID = tl.TrackID)
WHERE t.TrackID = ?