Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти максимальный ID и соответствующую дату / 9 сообщений из 9, страница 1 из 1
25.07.2019, 22:37
    #39841678
hattter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
Здравствуйте, не умею строить вложенные запросы, помогите пожалуйста написать его:
Дана таблица с двумя полями:
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
25.07.2019, 22:57
    #39841689
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
hattter,

тут не нужны вложенные запросы
Код: sql
1.
SELECT * FROM mytable ORDER BY id DESC LIMIT 1
...
Рейтинг: 0 / 0
26.07.2019, 09:09
    #39841740
hattter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
miksoft,
спасибо, ну а что все-таки выдаст программа, если написать
Select max(Id), date from table
...
Рейтинг: 0 / 0
26.07.2019, 09:16
    #39841742
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
hatttermiksoft,
спасибо, ну а что все-таки выдаст программа, если написать
Select max(Id), date from table ошибку синтаксиса
...
Рейтинг: 0 / 0
26.07.2019, 09:31
    #39841746
hattter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
[/quot]ошибку синтаксиса[/quot]
а почему будет ошибка?
и можно запрос написать так:
Select Id, Date
From Table
Where Id =(Select max(Id) From Table
?
...
Рейтинг: 0 / 0
27.07.2019, 12:17
    #39842184
hattter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
Подскажите, как можно выполнить этот запрос, не используя LIMIT 1?
...
Рейтинг: 0 / 0
27.07.2019, 12:23
    #39842185
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
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
27.07.2019, 12:26
    #39842186
hattter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
miksoft, спасибо большое!
...
Рейтинг: 0 / 0
01.08.2019, 11:39
    #39843964
Григорий2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти максимальный ID и соответствующую дату
Ещё так можно, но это самый низкопроизводительный способ для твоего случая.
select max(id),(select DATE from table where id=max(t.id)) from table t;

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


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