我在 c++ 中使用 sqlite3 库从 *.sqlite 文件中查询数据库。您可以在 sqlite3 中编写查询语句吗,例如:
char* sql = "select name from table id = (select full_name from second_table where column = 4);"
第二条语句应返回一个 id 以使用第一条语句完成查询语句。
我在 c++ 中使用 sqlite3 库从 *.sqlite 文件中查询数据库。您可以在 sqlite3 中编写查询语句吗,例如:
char* sql = "select name from table id = (select full_name from second_table where column = 4);"
第二条语句应返回一个 id 以使用第一条语句完成查询语句。
是的,您可以,只需确保嵌套查询不返回多于一行。将 LIMIT 1 添加到嵌套查询的末尾以解决此问题。还要确保它总是返回一行,否则主查询将不起作用。
如果要匹配嵌套查询中的多行,则可以使用其中之一IN
,如下所示:
char* sql = "select name from table WHERE id IN (select full_name from second_table where column = 4);"
或者您可以使用JOIN
:
char* sql = "select name from table JOIN second_table ON table.id = second_table.full_name WHERE second_table.column = 4"
请注意,该IN
方法可能非常慢,JOIN
如果您在右列上进行索引,则可能非常快
在旁注中,您可以使用 SQLiteadmin ( http://sqliteadmin.orbmu2k.de/ ) 查看数据库并直接在其中进行查询(对测试等很有用)。