mysql sous-requête où et par groupe

Je suis de l'apprentissage manuel mysql:
http://dev.mysql.com/doc/refman/5.6/en/example-maximum-column-group-row.html
et je suis confondu avec le "où.s1.article = s2.l'article " une partie, qu'est-ce que cela signifie?

Task: For each article, find the dealer or dealers with the most expensive price.

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | A      |  3.45 |
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | B      |  1.45 |
|    0003 | C      |  1.69 |
|    0003 | D      |  1.25 |
|    0004 | D      | 19.95 |
+---------+--------+-------+


SELECT article, dealer, price
FROM   shop s1
WHERE  price=(SELECT MAX(s2.price)
              FROM shop s2
              WHERE s1.article = s2.article);

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | C      |  1.69 |
|    0004 | D      | 19.95 |
+---------+--------+-------+

Je suis en train d'écrire le même code:

SELECT sex, name, birthday
From   user
Where  birthday=(SELECT MAX(birthday)
              FROM user
              group by sex);

Mais mine de sorties de l'erreur: une sous-requête de retour de plus de 1 ligne, pourquoi?

  • Je ne suis pas sûr, j'ai peut-être tort, mais je pense que c'est parce que subquery returns more than 1 row.
InformationsquelleAutor nut | 2013-02-28