|
Помогите построить запрос
|
|||
---|---|---|---|
#18+
Есть таблицы: Группы товаров: CREATE TABLE `p_grp` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `parent_id` int(11) NOT NULL default '0', `top_ip` int(11) NOT NULL default '0', ..., KEY `id` (`id`,`parent_id`) ) TYPE=MyISAM; Товары: CREATE TABLE `p_item` ( `id` bigint(20) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', ..., KEY `id` (`id`) ) TYPE=MyISAM; Связка: CREATE TABLE `p_link` ( `id` bigint(20) NOT NULL auto_increment, `item_id` int(11) NOT NULL default '0', `grp_id` int(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `item_id` (`item_id`,`grp_id`) ) TYPE=MyISAM; Каждый товар может принадлежать произвольному количеству групп. Возможно ли получить одним запросом товары определенной группы и при этом узнать о каждом товаре, к какой группе он принадлежит помимо той, по которой мы выбираем? На ум приходит только получить список товаров этой группы, а потом в цикле получать другие группы каждого товара. Но БД планируеться достаточно большая, так что это может загнуть сервер :( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 14:29 |
|
Помогите построить запрос
|
|||
---|---|---|---|
#18+
Простой способ сделать LEFT JOIN таблицы самой на себя и посмотреть, входит или нет еще в другую группу. А так лучше при изменении сведений о товоре, заносить в дополнительное поле информацию о вхождении в другую группу. Повысишь быстродействие. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2003, 15:33 |
|
|
start [/forum/topic.php?fid=47&fpage=706&tid=1855960]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
344ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 675ms |
0 / 0 |