При выполнении следующей команды mysql представляется, что коррелированный подзапрос возвращает несколько строк.Почему коррелированные подзапросы, которые используют MAX, возвращают несколько строк?
Вопрос 1. Почему MAX может возвращать несколько строк?
Вопрос 2. Как можно использовать оператор '=' для сопоставления нескольких строк?
SELECT Continent, Name, Population
FROM Country c
WHERE Population = (SELECT MAX(Population)
FROM Country c2
WHERE c.Continent=c2.Continent AND Population > 0);
+---------------+--------------------+------------+
| continent | name | population |
+---------------+--------------------+------------+
| Oceania | Australia | 18886000 |
| South America | Brazil | 170115000 |
| Asia | China | 1277558000 |
| Africa | Nigeria | 111506000 |
| Europe | Russian Federation | 146934000 |
| North America | United States | 278357000 |
+---------------+--------------------+------------+
6 rows in set (0.22 sec)
На самом деле она возвращает наибольшее население для каждого континента. вы ожидаете вернуть континент с самым высоким уровнем кулинарии? –
Я ожидаю, что он вернет население одной страны с самой высокой численностью населения. – TokyoMike