У меня возникла проблема, мне нужно сделать определенный 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](http://phpforum.ru/html/emoticons/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](http://phpforum.ru/html/emoticons/sad.gif)
То есть, если есть запись с id=2, type=mes и запись id=10, type =mes - то мне нужна именно вторая, где id самый высокий.
Заранее очень благодарно за помощь...
Помогите плиз
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
То есть, если есть запись с id=2, type=mes и запись id=10, type =mes - то мне нужна именно вторая, где id самый высокий.
Заранее очень благодарно за помощь...
Спустя 1 час, 57 минут, 3 секунды (5.05.2010 - 19:37) Angelinka написал(а):
Ребята, ну пожалуйста, дайте ответ хоть кто-то
![sad.gif](http://phpforum.ru/html/emoticons/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 самый высокий.
Ребята, ну помогите хоть кто-то. Целый форму программистов и некому ответить? Очень прошу. Я уже все облазила, не могу найти как это сделать и все...
Повторюсь: То есть, если есть запись с 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 написал(а):
Господи, большое Вам спасибо! Наконец то нашелся ответ! Проблемы решена. Еще раз спасибо!