Syntax:
<operand> <comparison operator> ALL (<subquery>)
          The word ALL, which must follow a
          comparison operator, means ``return TRUE if
          the comparison is TRUE for
          ALL of the rows that the subquery
          returns''. For example,
        
SELECT s1 FROM t1 WHERE s1 > ALL (SELECT s1 FROM t2);
          Suppose that there is a row in table t1
          containing {10}. The expression is TRUE if
          table t2 contains {-5,0,+5} because all
          three values in t2 are less than 10. The
          expression is FALSE if table
          t2 contains {12,6,NULL,-100} because there
          is a single value in table t2 -- 12 --
          which is greater than 10. The expression is
          UNKNOWN if table t2
          contains {0,NULL,1}.
        
          Finally, if table t2 is empty, the result
          is TRUE. You might think the result should
          be UNKNOWN, but sorry, it's
          TRUE. So, rather oddly,
        
SELECT * FROM t1 WHERE 1 > ALL (SELECT s1 FROM t2);
          is TRUE when table t2 is
          empty, but
        
SELECT * FROM t1 WHERE 1 > (SELECT s1 FROM t2);
          is UNKNOWN when table t2
          is empty. In addition,
        
SELECT * FROM t1 WHERE 1 > ALL (SELECT MAX(s1) FROM t2);
          is UNKNOWN when table t2
          is empty. In general, tables with NULLs
          and empty tables are edge
          cases -- when writing subquery code, always
          consider whether you have taken those two possibilities into
          account.
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

