SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.12.2013 20:04:59

AlxeKs
Участник
Зарегистрирован: 22.12.2013
Сообщений: 3

Составление запроса

Всем привет.
У меня не получается составить нужный запрос к базе.

Есть база:

id----header----text----date
*-----x1-------***-----22.12.2013 17:15
*-----x1-------***-----15.12.2013 12:10
*-----x2-------***-----21.12.2013 14:43
*-----x2-------***-----09.12.2013 09:15
*-----x3-------***-----20.12.2013 19:54

Я делаю поиск по header и text.
Как составить запрос так, чтоб при совпадающих header выдавался только один из них, с самой последней датой?

Пример:
Сделал запрос и совпадения нашлись везде.
Я получил:
х1 -- 22.12.2013 17:15
х1 -- 15.12.2013 12:10
х2 -- 21.12.2013 14:43
х2 -- 09.12.2013 09:15
х3 -- 20.12.2013 19:54

Требуется:
х1 -- 22.12.2013 17:15

х2 -- 21.12.2013 14:43

х3 -- 20.12.2013 19:54

Буду благодарен за помощь.

Неактивен

 

#2 22.12.2013 20:16:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Составление запроса

Можно сделать через подзапросы: http://sqlinfo.ru/forum/viewtopic.php?pid=34561#p34561

Неактивен

 

#3 22.12.2013 20:50:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Составление запроса

А просто через group by?

SELECT max(`date`), `header` FROM t GROUP BY `header`;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#4 22.12.2013 22:06:29

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Составление запроса

deadka прав, здесь max от значения поля, изврат с подзапросами не нужен.

Ну и если в конечной выборке нужны не только header и date, но и другие поля, то см FAQ №16

Неактивен

 

#5 23.12.2013 00:38:13

AlxeKs
Участник
Зарегистрирован: 22.12.2013
Сообщений: 3

Re: Составление запроса

deadka написал:

А просто через group by?

SELECT max(`date`), `header` FROM t GROUP BY `header`;

Так вывлодятся, только названия атрибутов.

Неактивен

 

#6 23.12.2013 00:42:11

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Составление запроса

выводятся значение date и header. Если этого недостаточно, если нужны еще id или text, то прочитайте внимательно ссылку, на которую vasya дал линк.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 23.12.2013 01:55:48

AlxeKs
Участник
Зарегистрирован: 22.12.2013
Сообщений: 3

Re: Составление запроса

Спасибо вопрос решён.

З.Ы. в phpmyadmin запрос :

SELECT max(`date`), `header` FROM t GROUP BY `header`;
сработал не правильно, после того как убрал все кавычки, всё отлично сработало.

Отредактированно AlxeKs (23.12.2013 01:56:12)

Неактивен

 

#8 23.12.2013 02:05:45

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Составление запроса

Это лишний раз доказывает, что phpmyadmin нужно выбросить на помойку.

Использовать в качестве имен ключевые слова, например, date - тоже плохая идея.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson