Ios 比较SQLite中的3个表
最初,我有两张桌子。我规范化了它,因为这些表之间的关系是多对多的。现在我有3个 乔布斯Ios 比较SQLite中的3个表,ios,sql,sqlite,uitableview,Ios,Sql,Sqlite,Uitableview,最初,我有两张桌子。我规范化了它,因为这些表之间的关系是多对多的。现在我有3个 乔布斯 jID PK jName jDesc 杰宁斯 jTags 课程 cID PK cName cDesc 学校 心肺图 职业介绍所 ID PK 杰德·肯尼迪 cID FK 我的应用程序显示作业的表格视图 单击时,它将显示作业的UIViewcontroller以及相关课程的tableview 如何查询jobcourse表,以便获得某项工作的所有相关课程?您可以将这两个表合并,例如: SELECT c
- jID PK
- jName
- jDesc
- 杰宁斯
- jTags
- cID PK
- cName
- cDesc
- 学校
- 心肺图
- ID PK
- 杰德·肯尼迪
- cID FK
如何查询jobcourse表,以便获得某项工作的所有相关课程?您可以将这两个表合并,例如:
SELECT course.* FROM course INNER JOIN jobscourse ON jobscourse.cID = course.cID WHERE jobscourse.jID = ?
这将从
课程
中获取所有条目,其中jobsorse
中的jID
等于某个值。建议:使用核心数据而不是SQLite数据库。我对核心数据感到困惑。而且,这是由于周一,所以很难重写代码。因此,我可能不得不坚持使用SQLITE。工作中的jID应该等于工作中的jID。。这就是jobsurse.jID=@“%d”,jID我应该重命名它吗?所以这并不令人困惑?@hazelvan注意,我在SQL中使用?
占位符并不是偶然的。不应使用stringWithFormat
将值插入SQL语句。您应该像我上面所做的那样编写SQL,然后sqlite3\u prepare\u v2
来准备它,然后sqlite3\u bind\u XXX
(例如sqlite3\u bind\u int
)来绑定值,然后sqlite3\u step
来执行SQL。对于数值来说没什么大不了的,但是对于字符串值来说,它真的很重要。尝试插入字符串,如“红色团队”项目负责人
或ABC的项目经理
,其中值中有引号,使用stringWithFormat
方法:将失败。@hazelvan是否应重命名jID?当然,也许jobID
不会那么模棱两可。(就个人而言,表名的复数形式也是一致的,要么在我的表名中使用单数(job
,course
,和jobcourse
),要么是复数形式(jobs
,courses
),我可能倾向于单数形式。)我的意思是:NSString*query=[NSString stringWithFormat:@“从课程内部选择课程*在jobsorse.courseID=course.cID中加入jobsorse ON jobsorse.jobID=%d”,jID]代码>单击jID时,如何获取其值?因为内部联接中不包括作业表,所以此查询可能无法工作。代码应该是:-(Jobs*)job:(int)jID{Jobs*return=nil;}return retrieve;}代码>以便我可以通过jID获取值?还是我错了?顺便说一句,我不是在插入值,而是在提取它们