Я выполняю синхронизацию в своем приложении iOS. У меня уже есть набор таблиц в папке моих документов, и я загружаю данные с сервера во время синхронизации в новый набор таблиц. Я сравниваю количество отдельных таблиц, и если они одинаковые, я использую естественное соединение, чтобы проверить, что они на самом деле одинаковы. Если они совпадают, то мое содержание обновляется, и мне не нужно вносить какие-либо изменения в текущий набор таблиц, иначе я получу новый набор таблиц и сохраню новые данные в качестве текущих таблиц.Natural Join не работает должным образом
Проблема в том, что когда я выполняю естественное соединение для определенных таблиц, хотя я вижу ту же информацию для обеих таблиц в SQLITEMANAGER, естественное соединение возвращает неверный ответ. Не знаю, почему. count_together ошибочно, хотя значения одинаковы.
Это, как я могу осуществить свою проверку (только для иллюстрации):
singleton.table = YES;
int count_table1 = 0;
int count_table2 = 0;
int count_together = 0;
NSMutableArray *arrayTables = [[NSMutableArray alloc] initWithObjects:@"DATA",@"TABLE",@"NUMBERS",nil];
NSMutableArray *arrayTables2 = [[NSMutableArray alloc] initWithObjects:@"DATA2",@"TABLE2",@"NUMBERS2", nil];
for(int i =0; i<[arrayTables count]; i++)
{
count_table1 = [databaseManager checkCountOfTable:[NSString stringWithFormat:@"SELECT COUNT(*) FROM %@",[arrayTables objectAtIndex:i]]];
count_table2 = [databaseManager checkCountOfTable:[NSString stringWithFormat:@"SELECT COUNT(*) FROM %@",[arrayTables2 objectAtIndex:i]]];
NSLog(@"Count of Table 1 is %i",count_table1);
NSLog(@"Count of Table 2 is %i",count_table2);
if (singleton.table == YES)
{
if(count_table1 != count_table2)
{
singleton.table = NO;
}
else
{
count_together = [databaseManager checkCountOfTable:[NSString stringWithFormat: @"SELECT COUNT(*) FROM (%@ NATURAL JOIN %@)",[arrayTables objectAtIndex:i],[arrayTables2 objectAtIndex:i]]];
NSLog(@"Count of Table 1 is %i",count_table1);
NSLog(@"Count of Tables Together is %i",count_together);
if (count_table1 == count_together)
{
singleton.table = YES;
}
else
{
singleton.table = NO;
}
}
}
}
нужны некоторые рекомендации и я радушны к предложениям.