我刚尝试在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键引用主表,并且它可以很好地工作。
全部谢谢!
答案 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客户端中测试您的查询。省去麻烦。