您可以使用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的條件>
連接在性能方面從不是一個(gè)更糟糕的選擇,并且根據(jù)具體情況和您使用的數(shù)據(jù)庫,可能會(huì)提供更好的性能。
=
可以用于子查詢返回只有一個(gè)值的情況。
當(dāng)子查詢返回多個(gè)值時(shí),您需要使用 IN
:
select * from table where id IN (multiple row query);
例如:
SELECT * FROM Students WHERE Marks = (SELECT MAX(Marks) FROM Students) --子查詢只返回一個(gè)值 SELECT * FROM Students WHERE Marks IN (SELECT Marks FROM Students ORDER BY Marks DESC LIMIT 10) --子查詢返回10個(gè)值