外部キーに関連する3つのテーブルを持つデータベースがあります。
旅行:
| ID | 番号| 日付| ------------------
日々:
| ID | TripID | 日付| 開始| 終了| ------------------------------
脚:
| ID | DayID | 起源| 目的地| --------------------------------
次の結合を使用して、このデータベースからデータを取得します。
SELECT * FOM Trips t JOIN Days d
ON t.Id = d.TripId
JOIN Legs l
ON d.Id = l.DayId
WHERE t.Id = tripId
これは、クエリされた旅行に関連付けられた各区間の1行を含む結果を返します。
| Trips.ID | Trips.Number | Trips.Date | Days.ID | Days.TripID | Days.Date | Days.Start | Days.End | Legs.ID | Legs.DayID | Legs.Origin | Legs.Destination | -------------------------------------------------- -------------------------------------------------- ---------------------------------------------
これは特定のトリップIDに対しては正常に機能しますが、たとえば、複数のトリップを返すクエリを実行するとします。
SELECT * FROM Trips t JOIN Days d ON t.ID = d.TripID 足に参加l ON d.Id = l.DayId WHERE d.Date> date
上記のクエリの結果を1回のトリップに制限し、そのトリップに関連付けられているすべての行を取得するにはどうすればよいですか?