Android 使用外键的sqlite查询
请帮我把sqlite n00b拿出来 我有两张桌子Android 使用外键的sqlite查询,android,sqlite,Android,Sqlite,请帮我把sqlite n00b拿出来 我有两张桌子 "CREATE TABLE students (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "studentname TEXT not null," + "studentpic BLOB," + "comment TEXT);"; 及 我想显示特定班级的学生
"CREATE TABLE students (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"studentname TEXT not null," +
"studentpic BLOB," +
"comment TEXT);";
及
我想显示特定班级的学生列表,但我的班级表仅通过学生id引用他们,我如何构造查询以将“班级”表的所有字段拉回到单个光标中,但使用“学生”表中的实际名称
非常感谢您可以将rawquery方法与以下SQL代码一起使用:
SELECT classes._id, students.studentname, classes.classname, classes.attend, classes.late, classes.dtime
FROM students, classes
WHERE students._id=classes.student
简言之,通过从两个表中进行选择,可以联接它们,但必须指定联接方式。SELECT后面的部分告诉您想要什么作为输出。FROM显示涉及哪些表(这些表的部分是否显示在输出中)。默认情况下,如果给它两个表,则会创建第一个表中一行和第二个表中一行的所有可能组合,因此,在WHERE子句中需要一个条件,将其缩小到仅将students表中的行与classes表中具有匹配id的对应行匹配。无论是否定义了外键关系,该条件都有效
如果WHERE子句有其他条件,可以使用AND添加。例如:
WHERE students._id=classes.student AND classes.classname="Underwater Basket Weaving"
关于在Android中使用SQLite设置和使用数据库的整个过程,有一个很好的教程(您似乎已经了解了其中的大部分内容)。非常好!非常感谢,先生。我喜欢这个网站!大部分时间在几分钟内回答。上次我认真编程时,互联网仍然只是arpanet,我们必须读书或与人面对面交谈才能得到答案。嘿,基思。这在SQLite GUI(如SqlSpy或类似)中运行得很好,但我花了很长时间让android对使用多个表的查询格式感到满意。有关于如何生成mDb.query语句的提示吗?您是否尝试过将mDb.rawquery与SQL结合使用?我手头没有一个开发平台来测试我自己,但我相信rawquery会接受SQLite接受的任何SQL查询。不,但是我必须做很多工作才能拿回游标,而不是处理原始输出rawquery的文档说它会返回游标。这不对吗?
WHERE students._id=classes.student AND classes.classname="Underwater Basket Weaving"