Android内部加入选择声明

时间:2011-12-09 03:09:50

标签: android sql

我刚尝试在Android中使用我的第一个Inner Join,Select语句,但它不起作用。它自己的数据库没有设置关系,因为我不知道如何做到这一点,如果可能的话。我可以单独从两个表中进行选择,但以下选择不起作用。

return(getReadableDatabase().rawQuery("SELECT _id, FacilityName FROM Facility INNER JOIN BeachFacility ON Facility.FacilityID = BeachFacility.FacilityFK WHERE BeachFK=?", args));

有什么我缺少的东西或者我需要知道更多吗?

干杯,

麦克


如果有人有兴趣。

我为此练习想出的数据库模型是将所有主键名留在_id和中间表,即位于海滩和设施之间的beaches_facilities表,我将那里的主键字段重命名为BF_id。 / p>

这样我仍然可以在其他查​​询中使用_id键引用主表,并且它可以很好地工作。

全部谢谢!

2 个答案:

答案 0 :(得分:0)

如何在两个表之间创建关系,请参阅this。 我没有看到您的查询有任何问题,下面是加入两个表的示例:

private final String mySQL = "SELECT * FROM firstTable a INNER JOIN secondTable b ON a.id = b.id WHERE b.Field=?";

答案 1 :(得分:0)

如果您遵循Android的_id约定,则假设您的两个表都有该列。

话虽如此,上面的查询可能会抛出“不明确的列_id”错误。按照Yaqub的说法对你的桌子进行鉴定,你应该没问题。

此外,请始终先在sqlite客户端中测试您的查询。省去麻烦。