繁体   English   中英

关于FMDB和JOIN子句的问题

[英]Question about FMDB and JOIN clause

我正在使用FMDB作为sqlite包装器,这很容易实现。 当我尝试联接两个(实际上是一个)表时遇到了问题。

为了区分连接的两个表的列,我必须在select aa as 'a.a', ba as 'ba' from the_table as a join the_table as b on... 然后,我可以使用[rs stringForColumn:@"aa"][rs stringForColumn:@"ba"]来访问它们(其中rs是FMResultSet类)。 但是我有大约15列,所以sql字符串似乎很长。 我想知道是否有更简单的方法来做到这一点?

使用select * from the_table as a join the_table as b... ,我可以分别访问a和b的内容吗? 可能类似于[rs resultSetForRenamedTable:@"a"] ;

嗯,FMDB只是SQLite的包装,

我想如果在这种特殊情况下使用* ,SQLite将触发错误。 诸如此类: SQL错误:列名称不明确:a

使用ATTACH DATABASE查询https://www.sqlite.org/lang_attach.html

例如:

db = [FMDatabase databaseWithPath:mCoreDatabase]; 
[db open]; 
NSString *attachSQL = [NSString stringWithFormat: @"ATTACH DATABASE '%@' AS db2", yourDB2Path]; 
[db executeUpdate:attachSQL]; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM