Заказ закрыт
Создать SQL (MySQL) запрос, генерирующий виртуальную таблицу (представление) из множества таблиц

Бюджет: 1 000 руб
13.09 $ – 11.45 €
Заказчик выбрал исполнителя:
Виталий Филиппенко  
Добрый день!
Необходимо создать SQL запрос, которй сгенерирует виртуальную таблицу из нескольких таблиц.
Структура реальных таблиц на примере двух:

CREATE TABLE `spr_ts_voda_car_type` (
  `id_car_type` int(8) NOT NULL,
  `name` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='';
ALTER TABLE `spr_ts_voda_car_type`
  ADD PRIMARY KEY (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_type`
  MODIFY `id_car_type` int(8) NOT NULL AUTO_INCREMENT;
COMMIT;

CREATE TABLE `spr_ts_auto_car_serie` (
  `id_car_serie` int(11) NOT NULL COMMENT 'ID',
  `id_car_model` int(8) NOT NULL,
  `id_car_generation` int(8) DEFAULT NULL,
  `name` varchar(255) NOT NULL,
  `date_create` int(10) UNSIGNED DEFAULT NULL,
  `date_update` int(10) UNSIGNED DEFAULT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Cерии';
ALTER TABLE `spr_ts_auto_car_serie`
  ADD PRIMARY KEY (`id_car_serie`),
  ADD KEY `name` (`name`),
  ADD KEY `id_car_model` (`id_car_model`),
  ADD KEY `id_car_type` (`id_car_type`),
  ADD KEY `fk_car_serie_car_generation` (`id_car_generation`);
ALTER TABLE `spr_ts_auto_car_serie`
  MODIFY `id_car_serie` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID';
COMMIT;


CREATE TABLE `spr_ts_voda_car_modification` (
  `id_car_modification` int(11) NOT NULL COMMENT 'ID',
  `id_car_serie` int(11) NOT NULL,
  `id_car_model` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Модификации';
ALTER TABLE `spr_ts_voda_car_modification`
  ADD PRIMARY KEY (`id_car_modification`),
  ADD KEY `id_car_model` (`id_car_model`),
  ADD KEY `id_car_serie` (`id_car_serie`),
  ADD KEY `id_car_type` (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_modification`
  MODIFY `id_car_modification` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID';
COMMIT;

CREATE TABLE `spr_ts_voda_car_model` (
  `id_car_model` int(11) NOT NULL COMMENT 'ID',
  `id_car_mark` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Модели';
ALTER TABLE `spr_ts_voda_car_model`
  ADD PRIMARY KEY (`id_car_model`),
  ADD KEY `name` (`name`),
  ADD KEY `id_car_mark` (`id_car_mark`),
  ADD KEY `id_car_type` (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_model`
  MODIFY `id_car_model` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID';
COMMIT;

CREATE TABLE `spr_ts_voda_car_mark` (
  `id_car_mark` int(8) NOT NULL COMMENT 'ID',
  `name` varchar(255) NOT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Марки';
ALTER TABLE `spr_ts_voda_car_mark`
  ADD PRIMARY KEY (`id_car_mark`),
  ADD KEY `id_car_type` (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_mark`
  MODIFY `id_car_mark` int(8) NOT NULL AUTO_INCREMENT COMMENT 'ID';
COMMIT;

CREATE TABLE `spr_ts_voda_car_characteristic` (
  `id_car_characteristic` int(8) NOT NULL COMMENT 'id',
  `name` varchar(255) DEFAULT NULL,
  `id_parent` int(8) DEFAULT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Характеристики';
ALTER TABLE `spr_ts_voda_car_characteristic`
  ADD PRIMARY KEY (`id_car_characteristic`),
  ADD KEY `name` (`name`,`id_parent`,`id_car_type`),
  ADD KEY `id_car_type` (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_characteristic`
  MODIFY `id_car_characteristic` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id';
COMMIT;

CREATE TABLE `spr_ts_voda_car_characteristic_value` (
  `id_car_characteristic_value` int(8) NOT NULL,
  `value` varchar(255) NOT NULL,
  `unit` varchar(255) DEFAULT NULL COMMENT 'Еденица измерения',
  `id_car_characteristic` int(8) NOT NULL,
  `id_car_modification` int(8) NOT NULL,
  `id_car_type` int(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Значения характеристик';
ALTER TABLE `spr_ts_voda_car_characteristic_value`
  ADD PRIMARY KEY (`id_car_characteristic_value`),
  ADD UNIQUE KEY `id_characteristic` (`id_car_characteristic`,`id_car_modification`),
  ADD UNIQUE KEY `id_car_characteristic` (`id_car_characteristic`,`id_car_modification`,`id_car_type`),
  ADD KEY `id_car_type` (`id_car_type`),
  ADD KEY `id_car_type_2` (`id_car_type`);
ALTER TABLE `spr_ts_voda_car_characteristic_value`
  MODIFY `id_car_characteristic_value` int(8) NOT NULL AUTO_INCREMENT;
COMMIT;



Структура целевой таблицы:
ID марки, Марка, ID модели, Модель, ID модификации, Модификация, Значение характеристики_1, Значение характеристики_2

`spr_ts_voda_car_mark`.`id_car_mark`, `spr_ts_voda_car_mark`.`name`, `spr_ts_voda_car_model`.`id_car_model`, `spr_ts_voda_car_model`.`name`, `spr_ts_voda_car_modification`.`id_car_modification` , `spr_ts_voda_car_modification`.`name`, `spr_ts_voda_car_characteristic_value`.`value` (где `id_car_characteristic` = 15), `spr_ts_voda_car_characteristic_value`.`value` (где `id_car_characteristic` = 35)


Доступ к тестовой базе смогу предоставить через phpMyAdmin

Постоплата
Опубликован 16.09.2019 в 09:17
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.