Оптимус Пьян, Только всё равно MySQL берёт первые попавшиеся поля, не входящие в группировку или агрегатные функции. Так что `id` у вас может быть от одной исходной строки, а MAX(`date`) от другой.
Оптимус Пьян, Сначала делается выборка максимальной даты с группировкой по имени, затем таблица JOIN'ится с этой выборкой для получения остальных полей (id).
Максим Клюшков,
В MySQL начиная с версии 5.7.5 по умолчанию при использовании GROUP_BY в выборку SELECT должны входить только поля, по которым идёт группировка, или агрегатные функции от полей. В данном запросе по полю `id` нет группировки и оно не в агрегатной функции, отсюда и ошибка.
Раньше такой запрос допускался, но если посмотрите на результат, то обнаружите, что у вас выбрался `id` = 1 и `date` = 2018, то есть значения из разных строк, поскольку берётся любой `id` из строк, попавших в одну группу по `name`.
Макс Васильев, Не путайте класс и экземпляр класса. Даже если вы создадите два экземпляра с классом Class1, то значение $year будет у каждого своё. Общие для всех экземпляров свойства определяются через static.
Скорее всего, эти сервера отвечают на запросы только о своём домене (mail.ru.). Для запросов к внешним доменам у mail.ru вполне могут быть совершенно другие, закрытые для запросов снаружи сервера.
Pavel Denisov, Формально, по самому ключу - нельзя. Просто файл закрытого ключа в PEM или DER содержит в себе значения (n, e, d, p, q), из которых генерируются оба ключа.
3.8. Использовать для демонстрации фрагментов кода только специальный тег <code> или специальные демонстрационные ресурсы (например, JsFiddle - https://jsfiddle.net/). Размещение фрагментов кода в виде изображений запрещено.
Boris Korobkov, Так я специально указал условие уникальности пары.
К тому же, для такого типа рецептов нужна и другая структура, иначе вы всё равно не определите, сначала 200 грамм, потом 50, или наоборот. Необходима ещё одна сущность - шаг рецепта, к которому должны быть привязаны продукты и метод приготовления.