可以在子查询中使用'in'(比如any / all)吗?

时间:2012-05-08 18:43:54

标签: mysql sql postgresql

你能用IN而不是ANY来获取子查询的结果吗? 我的意思是这样的:

SELECT nazwisko FROM studenci WHERE rok_urodz > IN (SELECT rok_urodz FROM studenci WHERE miasto = "Warszawa");

1 个答案:

答案 0 :(得分:3)

这不是正确的语法,比较运算符仅对ANY,SOME和ALL有效。

如果用'ALL'替换'IN',这也可以是OK语法。要使用“IN”,您不能包含比较运算符。

SELECT nazwisko 
FROM studenci 
WHERE rok_urodz IN (SELECT rok_urodz FROM studenci WHERE miasto = 'Warszawa');

也是可接受的语法,但提供的结果与

不同
SELECT nazwisko 
FROM studenci 
WHERE rok_urodz > ALL (SELECT rok_urodz FROM studenci WHERE miasto = 'Warszawa');

IN相当于= ANY

来源:http://dev.mysql.com/doc/refman/5.0/en/any-in-some-subqueries.html