我有一个查询返回多行的子查询。SQLite子查询
我有一个带有列表和用户表的表格。我在这两个表之间创建了一个名为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
我与子查询
SELECT * FROM user WHERE id = (SELECT user_id FROM list_user WHERE list_id = 0);
子查询作品查询(我使用它的代码,以便在0实际上是一个变量),并返回多行。但上层查询只返回一行,这非常合理;我检查id是否等于某个东西,它只检查子查询的第一行。
如何更改我的语句,以便在上部查询中获取多行?
事实上,虽然它确实提高了查询(试图在SQLite的浏览器),我的代码仍然只返回1行。我的查询SELECT * FROM person WHERE id IN(SELECT user_id FROM list_user WHERE user_id = 2);返回1行。 SELECT user_id FROM list_user WHERE user_id = 2; (子查询)返回2行。我只是印了它......为什么这样做? – user1810737
这两行是否有相同的user_id? –
不,在这种情况下,它们具有user_id 1和user_id 2。 – user1810737