[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: По одной записи каждого типа
Angelinka
Здравствуйте!
У меня возникла проблема, мне нужно сделать определенный sql запрос и я не знаю как его сделать. Вот суть.
Есть база, в ней 20 записей. в каждой записи есть ячейка type и есть всего 5 типов.
то есть, у одной записи в type может быть указано одной, у другой записи другое, но всего видов type есть 5. Как мне вывести по одной записи каждого типа? Я уже все перепробовала.
На пример:
1. id=1, name=forum, type=mes1
2. id=2, name=chat, type=mes2
3. id=1, name=site, type=mes1

А мне нужно взять только 2 и 3 запись, либо 1 и 2, ну, чтобы не попадалось одинаковых type, другими словами.
Помогите пожалуйста, кто может sad.gif



Спустя 29 минут, 21 секунда (5.05.2010 - 16:10) glock18 написал(а):
Цитата (Angelinka @ 5.05.2010 - 12:41)
Я уже все перепробовала.

и group by `type` ?

Спустя 1 час, 22 минуты, 58 секунд (5.05.2010 - 17:33) Angelinka написал(а):
Ой, а не подскажите как это использовать? Извините если отвлекаю...

Спустя 6 минут, 23 секунды (5.05.2010 - 17:40) Angelinka написал(а):
Все, я прочитала про group. Работает, но есть проблема - запрос берет только первые значения. Допустим у меня есть три записи одного типа. Мне нужна как раз последняя запись каждого типа, а мне выдается первая запись.
Помогите плиз sad.gif

То есть, если есть запись с id=2, type=mes и запись id=10, type =mes - то мне нужна именно вторая, где id самый высокий.
Заранее очень благодарно за помощь...

Спустя 1 час, 57 минут, 3 секунды (5.05.2010 - 19:37) Angelinka написал(а):
Ребята, ну пожалуйста, дайте ответ хоть кто-то sad.gif

Спустя 2 часа, 5 минут, 5 секунд (5.05.2010 - 21:42) Bezdna написал(а):

GROUP BY `type` DESC";

Спустя 12 часов, 41 минута, 8 секунд (6.05.2010 - 10:23) Angelinka написал(а):
Не, не то! Оно все равно берет первые записи, и потом уже взятые сортирует для выдачи по спаду либо, либо по возрастанию!

Повторюсь: То есть, если есть запись с id=2, type=mes и запись id=10, type =mes - то мне нужна именно вторая, где id самый высокий.

Ребята, ну помогите хоть кто-то. Целый форму программистов и некому ответить? Очень прошу. Я уже все облазила, не могу найти как это сделать и все...

Спустя 2 часа, 22 минуты, 55 секунд (6.05.2010 - 12:46) KonstantinK написал(а):
А если так
SELECT * FROM(название таблицы) WHERE `type` = mess ORDER BY id DESC LIMIT 1

если я правильно понял задачу

Спустя 4 дня, 21 час, 53 минуты, 16 секунд (11.05.2010 - 10:39) Angelinka написал(а):
Спасибо, но нет, не правильно. Вы задаете конкретный тип. А мне не нужно задавать тип, мне нужно взять по одной записи каждого типа! Но при этом, по последней записи каждого типа а не по первой.

Спустя 3 часа, 5 минут, 39 секунд (11.05.2010 - 13:45) glock18 написал(а):
вообще на уровне теории должно сработать что-то в этом духе:

select * 
from (select * from `table` order by id desc) t
group by `type`;

Спустя 2 дня, 56 минут, 5 секунд (13.05.2010 - 14:41) Angelinka написал(а):
Господи, большое Вам спасибо! Наконец то нашелся ответ! Проблемы решена. Еще раз спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.