Я в значительной степени следую концепции подзапроса. Но в то же время я немного туманно понимаю, когда это абсолютно необходимо. Я тренируюсь на https://www.mysqltutorial.org/tryit/query/mysql-subquery/#1. У меня есть запрос, который я думал, что вернет тот же набор результатов, но он не полностью.
Я следую этому:
SELECT
customerNumber,
checkNumber,
amount
FROM
payments
WHERE
amount = (SELECT MAX(amount) FROM payments);
, который производит это:
+----------------+-------------+------------+
| customerNumber | checkNumber | amount |
+----------------+-------------+------------+
| 141 | JE105477 | 120166.58 |
+----------------+-------------+------------+
Я знаю, что это правильно. Но я не уверен, почему подзапрос был бы абсолютно необходим, чтобы получить этот результат. Я думал, что этот запрос будет работать так же. На самом деле, он получает правильную сумму, но customerNumber
и checkNumber
неверны.
SELECT
customerNumber,
checkNumber,
MAX(amount) amount
FROM
payments;
+----------------+-------------+------------+
| customerNumber | checkNumber | amount |
+----------------+-------------+------------+
|103 | HQ336336 | 120166.58 |
+----------------+-------------+------------+