我在两个表上使用INNERJOIN查询,命名为EMPLOYEE&部门。 存在一个共同的empID(1234),它在两个表中都很常见,我想使用连接查询从两个表中获取数据。不要工作。以下是我的代码:
NSString *querySQL = [NSString stringWithFormat:
@"Select EMPLOYEE.* from EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.empID = DEPARTMENT.empID =%@",_txtfind.text];
NSLog(@"fetch query is%@",querySQL);
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(database,
query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
if(sqlite3_step(statement) == SQLITE_ROW)
{
NSString *name = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 0)];
[resultArray addObject:name];
NSString *department = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)];
[resultArray addObject:department];
NSString *year = [[NSString alloc]initWithUTF8String:
(const char *) sqlite3_column_text(statement, 2)];
[resultArray addObject:year];
NSLog(@"result array is %@",resultArray);
}
else{
NSLog(@"Not found");
}
sqlite3_reset(statement);
}
它总是会转向其他部分并显示" Not Found"。 难道我做错了什么?我的加入查询是对的吗?我是新手加入概念所以请帮助我,您的想法非常受欢迎。
答案 0 :(得分:1)
这是您的查询,直到on
子句结束时我才明白:
Select EMPLOYEE.*
from EMPLOYEE INNER JOIN
DEPARTMENT
ON EMPLOYEE.empID = DEPARTMENT.empID =%@",_txtfind.text];
也许你想要某种where
条款?
Select e.*, d.col1, d.col2, . . .
from EMPLOYEE e INNER JOIN
DEPARTMENT d
ON e.empID = d.empID
where e.empId = 'txtfind.text'; -- something like this
在任何情况下,如果这没有用,那么编辑你的问题并在变量替换后显示SQL查询。