请帮助sqlite n00b.
我有两张桌子
"CREATE TABLE students (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"studentname TEXT not null," +
"studentpic BLOB," +
"comment TEXT);";
和
"CREATE TABLE classes (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"classname TEXT," +
"attend INTEGER," +
"late INTEGER," +
"dtime TEXT," +
"student INTEGER REFERENCES students(_id) on
UPDATE CASCADE);";
我想在特定的类中显示学生列表,但我的classes表仅通过student-id引用它们,如何构造查询以将“classes”表的所有字段拉回单个游标但使用实际名称从’学生’表?
提前谢谢了
解决方法:
您可以将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子句中的条件,该条件将其缩小到仅匹配学生的行表与具有匹配id的classes表中的相应行.无论是否定义了外键关系,这都有效.
如果您有WHERE子句的其他条件,则可以使用AND添加它.例如:
WHERE students._id=classes.student AND classes.classname="Underwater Basket Weaving"
有关Android中SQLite中设置和使用数据库的整个过程的一个很好的教程(其中大部分你已经了解了)here.
原文地址:https://codeday.me/bug/20190614/1236615.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。