Vous pouvez utiliser in()
?:
select * from table where id in (多行查詢)
Ou utilisez le lien :
select distinct t.* from source_of_id_table s join table t on t.id = s.t_id where <source_of_id_table的條件>
La connexion n'est jamais un pire choix en termes de performances et, selon la situation et la base de données que vous utilisez, elle peut offrir de meilleures performances.
=
peut être utilisé lorsqu'une sous-requête ne renvoie qu'une seule valeur.
Lorsqu'une sous-requête renvoie plusieurs valeurs, vous devez utiliser IN
?:?
select * from table where id IN (multiple row query);
Par exemple?:
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個值