[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Непростая выборка...
Sylex
Может она и простая, для тех кто знает, но я решить проблемку не могу...

Есть таблица (многие поля я вырезал для удобства понимания):
SQL
CREATE TABLE `tab` (
`id` int(11) NOT NULL auto_increment,
`object_id` int(11) NOT NULL COMMENT 'ID объекта',
`name_short` varchar(5) default NULL COMMENT 'Условное обозначение планировки',
`floor` int(2) default NULL COMMENT 'Этаж',
`price` decimal(10,3) default NULL COMMENT 'Цена',
PRIMARY KEY (`id`),
KEY `object_id` (`object_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4138 DEFAULT CHARSET=cp1251;


Пример данных:
PHP
id    object_id    name_short    floor    price
3888        2            A                1        0
3892        2            A                5        0
3893        2            A                6        0
3895        2            A                8        0
3896        2            A                9        0
3897        2            A1                1        0
3898        2            A1                2        0
3900        2            A1                4        0
3912        2            A2                5        0
3913        2            A2                7        0
3914        2            A2                8        0
3915        2            A3                1        0
3916        2            A3                2        0
3926        2            B                3        0
3927        2            B                4        0
3928        2            B                5        0
3929        2            B                6  
&


Требуется сделать запрос типа:
SQL
SELECT * FROM tab GROUP BY `name_short`


Только тогда покажется 1 значение поля "Этаж", а мне нужно все этажи через запятую! Т.е.
PHP
2    A    1,5,6,8,9
2    A1    1
,2,4
2    A2    5
,7,8
2    A3    1
,2
2    B    3
,4,5,<


Возможно запросом и не сделать, нужно процедуры использовать... Есть варианты?

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



Спустя 2 минуты, 54 секунды (15.12.2008 - 12:00) Sylex написал(а):
кстати, какие-то глюки при отображении - < я знак не ставил в конце PHP кода и амперсанд выше тоже не ставил..

В HTML-коде отсутствует табуляция.

Спустя 3 часа, 34 минуты, 44 секунды (15.12.2008 - 15:34) Sylex написал(а):
проблема решена с использованием функции GROUP_CONCAT:
SQL
SELECT id,`name_short`,GROUP_CONCAT(`floor`) FROM object_price WHERE object_id = 2 GROUP BY `name_short`


Замечательная функция wink.gif

Спустя 6 часов, 24 минуты, 36 секунд (15.12.2008 - 21:59) kirik написал(а):
Sylex, тоже была подобная задача, но я обошелся циклом =) спасибо за решение!

Спустя 4 часа, 26 минут, 30 секунд (16.12.2008 - 02:26) FatCat написал(а):
Цитата (Sylex @ 15.12.2008 - 12:00)
какие-то глюки при отображении - < я знак не ставил в конце PHP кода и амперсанд выше тоже не ставил..

Кнопка user posted image корректно работает только с кодом пхп, помещенным между тегами <% код %>
Для мишматча кодов лучше пользоваться кнопкой user posted image - она не делает подсветки синтаксиса, и потому не так капризна.

Спустя 4 часа, 35 минут, 8 секунд (16.12.2008 - 07:01) Sylex написал(а):
просто в [ code ] нет табуляции... код некрасиво показывается


_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
Быстрый ответ:

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