从具有多个相关条目的多个SQL表中检索数据

时间:2012-12-28 02:35:11

标签: android sqlite android-sqlite

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

行程:

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查询不太熟悉。

1 个答案:

答案 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。一个好主意是将*替换为您需要返回到应用程序的实际列。