查询sqlite3数据库的多个表

时间:2011-03-29 16:00:31

标签: iphone sqlite

在下面的示例中,使用单个数据库表(Animals),其中包含三列(名称,描述,照片)。

如果我的数据库包含两个表(1.animals,2.Cities),每个表都有其列(名称,描述,照片),我该如何要求例如。 “名称城市”,位于第1栏表2中,与“动物描述”相结合,位于表1第2列中,用于制作具有这些“值”的对象。

引用这个.....(char *)sqlite3_column_text(compiledStatement,1)....

谢谢。

    // Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
    // Setup the SQL Statement and compile it for faster access
    const char *sqlStatement = "select * from animals";
    sqlite3_stmt *compiledStatement;
    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
        // Loop through the results and add them to the feeds array
        while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
            // Read the data from the result row
            NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
            NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
            NSString *aImageUrl = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];

            // Create a new animal object with the data from the database
            Animal *animal = [[Animal alloc] initWithName:aName description:aDescription url:aImageUrl];

1 个答案:

答案 0 :(得分:0)

如果两个表的列都是namedescriptionphoto,我看不到它们之间的关系。无论如何,这是一个SQL语句,可以满足您的要求,但它没有多大意义:

SELECT c.name, a.description FROM Cities AS c, animals AS a;

如果我误解了你的问题,请告诉我。