dilp, ты там наверное и ссылки будешь делать , то есть если просто выводить категорию со складами без ссылок на них, а просто как памятку текстом, то проще, но и надо пробовать, возможно и тут не получится все одним запросом сделать, ну или он будет на две страницы а4 формата, что без пузыря потом его не разберешь
С ссылками конечно и не памятка , а динамическая информация
dilp, Если объем таблиц не огромный, то лучше как то так сделать
структура (+/-)
--
-- Структура таблицы `category`
--
CREATE TABLE IF NOT EXISTS `category` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Структура таблицы `magazin`
--
CREATE TABLE IF NOT EXISTS `magazin` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(10) unsigned NOT NULL,
`data_m` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Структура таблицы `sklad`
--
CREATE TABLE IF NOT EXISTS `sklad` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(10) unsigned NOT NULL,
`data_s` varchar(32) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
пример запроса
SELECT c.`name`, GROUP_CONCAT(distinct st.`data_s`) as `stock`, GROUP_CONCAT(distinct m.`data_m`) as `mag` FROM `category` c join sklad st ON st.parent_id=c.id join magazin m ON m.parent_id=c.id GROUP BY c.`name`
kantry, что-то не так, в принципе тоже самое как у меня
вот такое у тебя рисует?
Категория3
Категория4
склад_а4
склад_б4 магазин_б4
склад_в4
я же показал вывод из базы.
На картинке погляди, видно и запрос и вывод))