[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запроса Mysql
Xes
Необходимо попытаться объеденить 4 запроса в одном.
Есть объекты 4 типа 'tip' - строка определяющая тип.
Необходимо сформировать группы пот tip типу, и отсортировать их по дате. Зделал так
но хотелось бы еще задать последовательность для GROUP BY `tip` - так если не по алфавиту а согласно например последовательности [группа 3, группа 1, группа 4, группа 2]

Цитата

SELECT `id`, `namelong`, `adres`, `tip`
FROM `t1`
where `goroden`='moskva' GROUP BY `tip` ORDER BY dsort




Спустя 5 минут, 58 секунд (4.05.2011 - 12:05) Renden написал(а):
Xes
Непонял, тебе что конкретно надо, отсортировать tip чтоб они были так [группа 1, группа 2, группа 3, группа 4] ?

SELECT `id`, `namelong`, `adres`, `tip`
FROM `t1`
where `goroden`='moskva' GROUP BY `tip` ORDER BY dsort, tip

Спустя 3 минуты, 34 секунды (4.05.2011 - 12:09) Xes написал(а):
нет мне как рас надо задать другу последовательность не в алфавитном порядке а в том в котором я укажу. Т.к вывод на странице должен быть в такой последовательности [группа 3, группа 1, группа 4, группа 2]. Либо 4 запроса делать на каждую группу по запросу. Т.е. Необходимо задать условия группировки для типа объекта согласно перечисленому множеству значений. (скажем чтото типа GROUP BY `tip` where группа 3 > группа 1 > группа 4 > группа 2)
wink.gif
Походу такое зделать нельзя?

Спустя 17 минут, 10 секунд (4.05.2011 - 12:26) Renden написал(а):
Xes
Всеравно не совсем тебя понимаю, но если всеже правильно понял то смотри. У меня была задача вывести отделы пользователей а в них самих пользователей. Те так:
Бухи:
Лена
Маша
ИТ:
Денис

вот, но когда всех добавил и упорядочил, отдел IT оказался на 1 месте тк (id отдела =1), а надо было чтоб на 1 месте была генеральная дирекция(id 7), ну я дабы не заморачиваться создал еще 1 стоблец в базе sort и прописал там 1,2 и тп в той последовательности в котороой надо.. и отсортировал по нему. Тебе тоже типа того надо?

Спустя 22 минуты, 1 секунда (4.05.2011 - 12:48) Xes написал(а):
Да мне имено так и надо. Мысль что каждому типу проставить свой id- для необходимой мне сортировки, у меня тоже была но думал может еще както извратиться мона чтобы не вводить столбец.

Спустя 12 минут, 29 секунд (4.05.2011 - 13:01) Renden написал(а):
Xes
Помоему самое отличное решение, тк например в админке ты сможешь двигать их местами если понадобицо с помощью update, был даже вроде конкурс такой)

Спустя 7 минут, 39 секунд (4.05.2011 - 13:08) Xes написал(а):
Цитата
SELECT `idhotel`, `namelong`, `adres`, `tip`
FROM `hotels`
where `goroden`='moskva' GROUP BY `idtip` ORDER BY dsort

Такой запрос замутил почемуто выводит всего 2 записи из четырех.
записи имет idtip 3 шт значение = 1, одна значение 2
Может неправелно сам запрос пишу, вроди все верно.

Спустя 5 минут, 13 секунд (4.05.2011 - 13:13) Renden написал(а):
Xes
Не что ты пишешь что и выводит тебе sql, GROUP BY группирует схожие значения в 1, т.е если у тя есть в базе:
name
Маша
Маша
Маша
Маша
Лена

То он GROUP BY name выдаст 2 результата Маша и Лена

Спустя 2 минуты, 16 секунд (4.05.2011 - 13:16) Xes написал(а):
А нутогда ок все в ордер бай отсортирую

Спустя 15 минут, 57 секунд (4.05.2011 - 13:32) Xes написал(а):
GROUP BY я так понимаю применятеся для такого?
Прссумировать( по полю ЗАПЛАТИЛ) сгрупировав по полю КЛИЕНТ

Спустя 6 минут, 16 секунд (4.05.2011 - 13:38) Renden написал(а):
Xes
Вообще я бы сделал так:
1) создал таблицу groups с полями id, city
2) создал таблицу hotels c полями id, name, adress, group
3) и сделал код php для вывода всех гостиниц по городам:

$query_group = mysql_query("SELECT id, city FROM groups");
while ($group = mysql_fetch_assoc($query_group)
{
echo '<p>'.$group['city'];
$query_hotel = mysql_query("SELECT id, name, adress, group FROM hotels WHERE group='".$group['id']."'");
while ($row = mysql_fetch_assoc($query_hotel)
echo $row['name'] . $row['adress'];
echo '</p>';
}

4) Для вывода по определенному городу:

$id = 1 //Допустим москва
mysql_query("SELECT id, name, adress, group FROM hotels WHERE group='$id'");

5) Для поиска по городу

$city = "Моск"
mysql_query("SELECT h.id, h.name, h.adress FROM hotels h INNER JOIN groups g ON g.id=h.group WHERE g.city LIKE '%$city%');
Быстрый ответ:

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