я только что нашел этот кусок кода SQL, который возвращает строку, содержащую самый старый человек: Предположим, что у вас есть таблица persons
SQL с двумя столбцами, name
и age
:Почему этот код SQL возвращает максимальное значение?
SELECT p1.name, p1.age
FROM persons p1
LEFT JOIN persons p2 ON p1.age < p2.age
WHERE p2.age IS NULL
Почему это возвращающих максимум ? Хотя я думаю, что знаю, что делает левое соединение, я не получаю этот пример, потому что он дважды использует одну и ту же таблицу.
Может кто-нибудь объяснить, что здесь происходит? Я действительно хочу это узнать.
Да, это так. Но как называется этот трюк SQL? – cha
Вы ищете формальное имя, например, «декартовое соединение»? –