запрос на выборку

Kirill

Новичок
запрос на выборку

Имеется каталог, у каждой категории может быть неограниченное кол-во доп. полей.
Структура БД:
Категории:
[sql]
CREATE TABLE `exc_cat_categories` (
`category_id` int(10) unsigned NOT NULL auto_increment,
`category_name` char(255) NOT NULL,
`category_sort_order` int(11) NOT NULL,
PRIMARY KEY (`category_id`),
UNIQUE KEY `category_alias` (`category_alias`),
KEY `category_parent` (`category_parent`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8
[/sql]
Продукты:
[sql]
CREATE TABLE `exc_cat_products` (
`product_id` int(10) unsigned NOT NULL auto_increment,
`category_id` int(10) unsigned NOT NULL,
`product_type` enum('smd','lead') NOT NULL,
`product_type_no` char(11) NOT NULL,
PRIMARY KEY (`product_id`),
KEY `package_id` (`package_id`),
KEY `category_id` (`category_id`,`product_type`),
KEY `product_type_no` (`product_type_no`)
) ENGINE=MyISAM AUTO_INCREMENT=1498 DEFAULT CHARSET=utf8
[/sql]
Доп. поля:
[sql]
CREATE TABLE `exc_cat_fields` (
`field_id` int(10) unsigned NOT NULL auto_increment,
`field_name` char(100) NOT NULL,
`field_type` enum('char','int','decimal') NOT NULL,
`field_alias` char(50) NOT NULL,
PRIMARY KEY (`field_id`),
UNIQUE KEY `field_alias` (`field_alias`)
) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=utf8
[/sql]
Связь доп. полей с каждой категорией:
[sql]
CREATE TABLE `exc_cat_category_fields` (
`category_id` int(10) unsigned NOT NULL,
`field_id` int(10) unsigned NOT NULL,
`category_view_list` tinyint(1) unsigned NOT NULL,
`field_order` smallint(6) NOT NULL,
PRIMARY KEY (`category_id`,`field_id`),
KEY `field_id` (`field_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
[/sql]
Данные доп. полей;
[sql]
CREATE TABLE `exc_cat_data` (
`product_id` int(10) unsigned NOT NULL,
`field_id` int(10) unsigned NOT NULL,
`data_char` char(255) default NULL,
`data_int` int(11) default NULL,
`data_decimal` decimal(10,3) default NULL,
PRIMARY KEY (`product_id`,`field_id`),
KEY `field_id` (`field_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
[/sql]

Вопрос: как лучше вывести продукты категории вместе с доп. полями в единой таблице (Чтобы работало быстро :))?
Продуктов в категории порядка 300, доп полей на каждую категорию порядка 15.
 
Сверху