我有一个包含三个表的数据库,与外键相关:
行程:
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查询不太熟悉。
答案 0 :(得分: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。一个好主意是将*
替换为您需要返回到应用程序的实际列。