SQLite子查询

use*_*737 0 sql sqlite android subquery

我有一个子查询的查询,返回多行.

我有一个包含列表的表和一个包含用户的表.我在这两个表之间创建了一个多对多表,称为list_user.

LIST
id INTEGER
list_name TEXT
list_description TEXT

USER
id INTEGER
user_name TEXT

LIST_USER
id INTEGER
list_id INTEGER
user_id INTEGER
Run Code Online (Sandbox Code Playgroud)

我的子查询查询

SELECT * FROM user WHERE id = (SELECT user_id FROM list_user WHERE list_id = 0);
Run Code Online (Sandbox Code Playgroud)

子查询工作(我在代码中使用它,所以0实际上是一个变量),它返回多行.但是上层查询只返回一行,这很合乎逻辑; 我检查id是否等于某个东西,它只检查子查询的第一行.

如何更改我的语句,以便在上层查询中获得多行?

Gor*_*off 5

我对=SQLite 的作品感到惊讶.它会在大多数数据库中返回错误.无论如何,您需要in声明:

SELECT *
FROM list
WHERE id in (SELECT user_id FROM list_user WHERE list_id = 0);
Run Code Online (Sandbox Code Playgroud)