SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.10.2009 18:48:20

Артем125
Участник
Зарегистрирован: 05.10.2009
Сообщений: 9

Две взаимосвязанные таблицы и запрос

Здравствуйте,

Две таблицы хранят в себе обычную талбицу типа ехеl. Таблица содержит шапку и тело... как обычно

таблица содержащая шапку
CREATE TABLE `tables_heading` (
  `heading_id` int(6) NOT NULL auto_increment,
  `category_id` int(11) default NULL,
  `heading_order` int(2) default NULL,
  `heading_name` varchar(255) default NULL,
  PRIMARY KEY  (`heading_id`),
  KEY `page_id` (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=925 ;

таблица тела
CREATE TABLE `tables_body` (
  `body_id` int(6) NOT NULL auto_increment,
  `heading_id` int(6) default NULL,
  `body_rows` int(4) NOT NULL default '0',
  `body_value` text,
  PRIMARY KEY  (`body_id`),
  KEY `heading_id` (`heading_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3753 ;

например такие данные
код наименование цена (это шапка)
1     конфета         50
2     мухоморчик     750
3     трюфель         2500

Так вот.... это необходимо выбрать из таблицы и желательно построчно
тоесть выбираем шапку формируем html код <tr><td>Код</td>.....</tr>
          выбираем тело    формируем html код <tr><td>1</td>.....</tr>

Можно выбрать например код (шапка) и соответсвующий столбей... занести в массив,
и так еще два запроса.  Получается три запроса для шапки и три для тела... Накладно по расходам, очеень долго

Подскажите как можно?

Неактивен

 

#2 22.10.2009 21:31:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Две взаимосвязанные таблицы и запрос

1. В табличке Excel нету ячеек типа «шапка»: есть ячейки с другим форматированием.
Но по своей сути они являются просто ячейками. Попробуйте воспользоваться этим фактом.

2. У Вас какое-то неочевидное представление ячеек. Если нужно действительно
представлять таблицу произвольного размера, то я бы сделал табличку типа типа
CREATE TABLE cells (x INT, y INT, data VARCHAR(10), PRIMARY KEY (y,x));
ну и выбирал бы из нее построчечно:
SELECT data FROM cells WHERE y = 1 ORDER BY x

Ну или если нужно выбирать всю таблицу, то SELECT * FROM cells ORDER BY y,x wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson