2

外部キーに関連する3つのテーブルを持つデータベースがあります。

旅行:

ID
Number
Date

日々:

ID
TripID (Foreign key to ID column in trips)
Date
Start
End

脚:

ID
DayID (Foreign key to ID column in days)
Origin
Destination

私のアプリには、各テーブルに対応するTripクラス、Dayクラス、Legクラスがあります。各旅行には関連する日のリストがあり、各日には関連するレッグのリストがあります。現在、目的の旅行のクエリを実行して、データベースからデータをロードしています。次に、別のクエリを実行して、その旅行に関連付けられているすべての日を取得して追加します。次に、毎日のクエリを実行して、関連付けられている区間を取得して追加します。

これを達成するためのより効率的な方法があるはずだと私には思えます。3つのテーブルのトリプル結合を実行し、各レッグの日と旅行のデータもすべて含む各レッグの行を持つカーソルを取得する他の唯一のオプションはありますか?それを行うためのより良い方法はありますか?私はSQLクエリにあまり精通していません。

4

1 に答える 1

0

Join は明らかな答えです。

SELECT * FOM Trips t JOIN Days d
ON t.Id = d.TripId
JOIN Legs l 
ON d.Id = l.DayId
WHERE t.Id = tripId

tripId検索しようとしている旅行の IDに置き換える必要があります。*アプリケーションに返す必要がある実際の列に置き換えることもお勧めします。

于 2012-12-28T02:43:41.960 に答える