![]() |
Запрос MySQL. Поможите совсем запутался
Что то совсем у меня башня не варит :(
Задача в общем то простая, а сообразить - не могу Допустим есть таблица типа 1|2|3|4|5| 1|яблоко|Вася|что-то|75| 2|вишня|Коля|нечто|75| 3|кокос|Вася|хрень|75| 4|вишня|Оля|нечто|75| 5|вишня|Коля|нечто|75| 6|вишня|Оля|нечто|88| 7|вишня|Оля|нечто|75| 8|кокос|Вася|хрень|96| Задача плучить результат вида: 1|яблоко|Вася|что-то|75| 2|вишня|Коля|нечто|75| 4|вишня|Оля|нечто|75| Как сделать выборку по полю пять - понятно (WHERE 5=75) А вот как заставить при этом выбирать только по одной записи из поля 3 Ежли б мне было нужно только одно поле 3, то можно было бы написвтть DISTINCT 3, однако мне нужны ВСЕполя :( Кароче туплю Поможите плз ... |
т.е. на самом то деле задача несколько сложнее конечно
Есть 2 таблицы форума одна с постами "Посты" в которых есть поля "участник" + "тема" и тд и таблица "Темы" с их описаниями Задача: получить выборку тем, в которых отписывался "участник". При этом разумеется нужно получить лиш одну запись по теме, даже если участик там сделал 20 постов. Вот что я хочу получить Запрос вводящий всё подрят SELECT * FROM Посты LEFT JOIN Темы ON Посты.тема=Темы.ID_Темы ORDER BY ... Эта зараза выведет мне темы несколько раз, а нужно одну тему - однин раз |
GROUP BY field3
GROUP BY ID_темы |
Цитата:
Полязапроса подвергшиеся нгруппировке -должны в таком случае являться результатом вычислений, т.е. функций... :( Например: MAX(field_1) А мне описание темы - нужно целиком .... добавлено через 3 минуты вообще собственно обсуждаемым форумом является IPB 2.1.7 Я хочу туда прикрутить функцию "Темы в которых писал отсортированные по последнему посту в них" Там вроде как должен быть очень простой запрос ... |
Цитата:
|
select t.* from `topics` t, (select max(`date`), `topic_id` from `posts` where `user_id`='$user_id' group_by `topic_id` having max(`date`)) q where t.`id`=q.`topic_id` order by q.`date`
|
Вот следующий тупой вопрос
Уже совсем про другое :) Вот допустим есть таблица. Там ест-но много полей. Есть поле timestamp со следующими значениями 1184256260 1184589319 1184840467 1186068453 1187019212 1188845910 1189698208 1197457131 и т.д. Запрос: SELECT * FROM news WHERE timestamp IN(1184840467,1187019212,1184589319) Как мне уговорить Мускуль выдавать результаты именно в таком порядке, как задано в параметре IN() ? а то он мне как честный выдаёт записи по тому порядку как они в базе лежат, т.е. 1184589319,1184840467,1187019212 |
Код:
SELECT * |
Цитата:
|
Hubbitus, ну это как то дико сложно :(
Проще уж просто загнать в цикл вытаскивание записей по одной из базы ... Мне то надо сделать простенький универсальный запрос Т.е. допустим приведённая таблица содержит статьи. Другая таблица содержит категории. В одном из полей таблицы_категорий приведён список статей из таблицы_статей, т.е. "1184840467,1187019212,1184589319". Их надо вывести ИМЕННО в том порядке, в котором они записаны в поле таблицы_категорий. |
Цитата:
|
Saruman, угу. Вроде как раз то что надо
"Ведь можете когда захотите" :) Осталось токма почитать по этой функции, нет ли каки косяков Благодарствую за помощь |
| Часовой пояс GMT +4, время: 09:13. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.