2

我有一个包含三个表的数据库,与外键相关:

行程:

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 类。每个行程都有一个关联天的列表,每个天都有一个关联的腿列表。目前,我通过对所需行程运行查询来加载数据库中的数据。然后我运行另一个查询来获取与该旅行相关的所有日期并添加它们,然后我为每一天运行一个查询以获取相关的腿并添加它们。

在我看来,应该有一种更有效的方法来实现这一点。我唯一的其他选择是对三个表进行三重连接并获得一个游标,其中每条腿都有一行,还包含该腿的全天和行程数据?有更好的方法吗?我对 SQL 查询不太熟悉。

4

1 回答 1

0

加入是显而易见的答案:

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 回答