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`