扫码关注官方订阅号
我有一个返回多行的查询,还有另一个查询,我想设置条件为这些多行中的任何一个值,所以基本上我希望子查询看起来像这样:
select * from table where id= (多行查询);
其中多行查询返回多行。所以如果这些行的值是1、2、3,那么我希望将id设置为1或2或3。
多行查询
您可以使用in():
in()
select * from table where id in (多行查询)
或者使用连接:
select distinct t.* from source_of_id_table s join table t on t.id = s.t_id where <source_of_id_table的条件>
连接在性能方面从不是一个更糟糕的选择,并且根据具体情况和您使用的数据库,可能会提供更好的性能。
= 可以用于子查询返回只有一个值的情况。
=
当子查询返回多个值时,您需要使用 IN:
IN
select * from table where id IN (multiple row query);
例如:
SELECT * FROM Students WHERE Marks = (SELECT MAX(Marks) FROM Students) --子查询只返回一个值 SELECT * FROM Students WHERE Marks IN (SELECT Marks FROM Students ORDER BY Marks DESC LIMIT 10) --子查询返回10个值
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
您可以使用
in():或者使用连接:
连接在性能方面从不是一个更糟糕的选择,并且根据具体情况和您使用的数据库,可能会提供更好的性能。
=可以用于子查询返回只有一个值的情况。当子查询返回多个值时,您需要使用
IN:例如:
SELECT * FROM Students WHERE Marks = (SELECT MAX(Marks) FROM Students) --子查询只返回一个值 SELECT * FROM Students WHERE Marks IN (SELECT Marks FROM Students ORDER BY Marks DESC LIMIT 10) --子查询返回10个值