我正在寫一個簡單的導航視圖iPhone程序使用SQLite的學習目的。我以前在數據庫中有一個表,但現在已經將它更新爲兩個,並且我的INNER JOIN語句崩潰了。 SQL語句似乎很好地直接運行它。在下面的代碼中,未註釋的語句工作得很好,但是如果我將它們切換出來,則註釋掉的語句將會出錯。JOIN不工作在SQLite查詢編譯
static sqlite3_stmt *init_statement = nil;
static sqlite3_stmt *dehydrate_statment = nil;
@implementation ICD9
@synthesize primaryKey,text,priority,status,match;
- (id)initWithPrimaryKey:(NSInteger)pk database:(sqlite3 *)db {
if (self = [super init]) {
primaryKey = pk;
database = db;
if (init_statement == nil) {
const char *sql = "SELECT text,priority,complete FROM todo WHERE pk=?";
//const char *sql = "SELECT todo.*, match.code10 FROM todo INNER JOIN match ON match.text = todo.text WHERE pk=1;";
if (sqlite3_prepare_v2(database, sql, -1, &init_statement, NULL) != SQLITE_OK) {
NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
}
}
return self;
}
的表是在同一個數據庫:
CREATE TABLE todo(pk INTEGER PRIMARY KEY, text VARCHAR(25), priority INTEGER, complete BOOLEAN);
CREATE TABLE match(matchid INTEGER PRIMARY KEY, text VARCHAR(25), name VARCHAR(25));
我很新的這所以任何幫助,將不勝感激。
請格式化問題。 –
'SELECT todo。,'無效! –
我認爲'SELECT todo。*'是正確的,問題出現在'pk =?'中,沒有傳遞參數值。 –