0

我在 c++ 中使用 sqlite3 库从 *.sqlite 文件中查询数据库。您可以在 sqlite3 中编写查询语句吗,例如:

char* sql = "select name from table id = (select full_name from second_table where column = 4);"

第二条语句应返回一个 id 以使用第一条语句完成查询语句。

4

2 回答 2

2

是的,您可以,只需确保嵌套查询不返回多于一行。将 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如果您在右列上进行索引,则可能非常快

于 2010-02-13T02:04:28.420 回答
1

在旁注中,您可以使用 SQLiteadmin ( http://sqliteadmin.orbmu2k.de/ ) 查看数据库并直接在其中进行查询(对测试等很有用)。

于 2010-02-15T21:45:42.563 回答