DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info.gz) Comparisons using subqueries

Info Catalog (mysql.info.gz) Scalar subqueries (mysql.info.gz) Subqueries (mysql.info.gz) ANY IN SOME subqueries
 
 13.1.8.2 Comparisons Using Subqueries
 .....................................
 
 The most common use of a subquery is in the form:
 
      NON_SUBQUERY_OPERAND COMPARISON_OPERATOR (SUBQUERY)
 
 Where COMPARISON_OPERATOR is one of these operators:
      =  >  <  >=  <=  <>
 
 For example:
      ... 'a' = (SELECT column1 FROM t1)
 
 At one time the only legal place for a subquery was on the right side
 of a comparison, and you might still find some old DBMSs that insist on
 this.
 
 Here is an example of a common-form subquery comparison that you cannot
 do with a join. It finds all the values in table `t1' that are equal to
 a maximum value in table `t2':
 
      SELECT column1 FROM t1
             WHERE column1 = (SELECT MAX(column2) FROM t2);
 
 Here is another example, which again is impossible with a join because
 it involves aggregating for one of the tables. It finds all rows in
 table `t1' containing a value that occurs twice in a given column:
 
      SELECT * FROM t1 AS t
          WHERE 2 = (SELECT COUNT(*) FROM t1 WHERE t1.id = t.id);
 
 For a comparison performed with one of these comparison operators, the
 subquery must return a scalar, with the exception that `=' can be used
 with row subqueries.   Row subqueries.
 
Info Catalog (mysql.info.gz) Scalar subqueries (mysql.info.gz) Subqueries (mysql.info.gz) ANY IN SOME subqueries
automatically generated byinfo2html