Разбираю примеры элементарных запросов на MySQL. На официальном сайте приведено несколько примеров, для того чтобы найти строку, содержащую максимальный элемент определенного столбца. Не могу понять, как из такого запроса:
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
действительно получается правильный ответ.. Таблица shop выглядит так:
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 1 | A | 3.45 |
| 1 | B | 3.99 |
| 2 | A | 10.99 |
| 3 | B | 1.45 |
| 3 | C | 1.69 |
| 3 | D | 1.25 |
| 4 | D | 19.95 |
+---------+--------+-------+
Не поняв откуда берется NULL в поле s2. article, я решил удалить условие WHERE и посмотреть, как будут таблицы присоединяться по LEFT JOIN. Результат меня удивил. Также я не понял по какому принципу таблицы объединилсь в такую
Надо отметить что первичным ключом в этой таблице является пара столбцов article, dealer.
Прошу помощи разъяснить как присоединились таблицы и как получилось найти строку, содержащую максимальный элемент в поле price.
ссылка на первоисточник:
https://dev.mysql.com/doc/refman/8.0/en/examples.html