powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти максимальный ID и соответствующую дату
9 сообщений из 9, страница 1 из 1
Найти максимальный ID и соответствующую дату
    #39841678
hattter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, не умею строить вложенные запросы, помогите пожалуйста написать его:
Дана таблица с двумя полями:
Table
Id Date
1 12.01.2019
2 13.01.2019
3 16.01.2019
4 17.01.2019
5 02.01.2019
41 02.01.2019
6 29.01.2019

Необходимо вывести максимальный ID и соответствующую ему дату. Например: 41 02.01.2019
Не имею возможности проверить в программе запрос, поэтому мне интересно, что будет если написать:
Select max(ID), Date
From Table

MySQL выдаст ошибку?
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39841689
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hattter,

тут не нужны вложенные запросы
Код: sql
1.
SELECT * FROM mytable ORDER BY id DESC LIMIT 1
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39841740
hattter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
спасибо, ну а что все-таки выдаст программа, если написать
Select max(Id), date from table
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39841742
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hatttermiksoft,
спасибо, ну а что все-таки выдаст программа, если написать
Select max(Id), date from table ошибку синтаксиса
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39841746
hattter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[/quot]ошибку синтаксиса[/quot]
а почему будет ошибка?
и можно запрос написать так:
Select Id, Date
From Table
Where Id =(Select max(Id) From Table
?
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39842184
hattter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как можно выполнить этот запрос, не используя LIMIT 1?
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39842185
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hattterошибку синтаксиса
а почему будет ошибка?Потому что этим запросом вы хотите странного.
max(Id) выдает одно значение, а Date - по числу записей в таблице. Одно значение и много в прямоугольную таблицу не укладываются.

hattter Select Id, Date
From Table
Where Id =(Select max(Id) From Table
Так тоже можно:
Код: sql
1.
2.
3.
SELECT * 
FROM mytable
WHERE id=(SELECT MAX(id) FROM mytable)


И так можно:
Код: sql
1.
2.
SELECT t1.* 
FROM mytable t1 JOIN (SELECT MAX(id) max_id FROM mytable) t2 ON t1.id=t2.max_id


hattterне используя LIMIT 1Ну и зря, это самый оптимальный вариант.
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39842186
hattter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, спасибо большое!
...
Рейтинг: 0 / 0
Найти максимальный ID и соответствующую дату
    #39843964
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё так можно, но это самый низкопроизводительный способ для твоего случая.
select max(id),(select DATE from table where id=max(t.id)) from table t;

Но с limit 1 самый быстрый и надёжный вариант. Mysql начнёт зачитывать индекс с конца и вытащит первую найденную запись. Максимально быстрое выполнение запроса.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти максимальный ID и соответствующую дату
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]