На сайте есть 3 таблицы (в сокращенном виде):
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE `team` ( `team_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `team_base_id` TINYINT(2) DEFAULT 2, `team_basemedical_id` TINYINT(2) DEFAULT 1, `team_basephisical_id` TINYINT(2) DEFAULT 1, `team_baseschool_id` TINYINT(2) DEFAULT 1, `team_basescout_id` TINYINT(2) DEFAULT 1, `team_basetraining_id` TINYINT(2) DEFAULT 1 );
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE `buildingbase` ( `buildingbase_id` INT(11) PRIMARY KEY AUTO_INCREMENT, `buildingbase_building_id` TINYINT(1) DEFAULT 0, `buildingbase_team_id` SMALLINT(5) DEFAULT 0 );
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE `building` ( `building_id` TINYINT(1) PRIMARY KEY AUTO_INCREMENT, `building_name` VARCHAR(255) NOT NULL ); INSERT INTO `building` (`building_name`) VALUES ('base'), ('basemedical'), ('basephisical'), ('baseschool'), ('basescout'), ('basetraining');
Вопрос: можно ли как-то в одном запросе склеить `building_name` из третьей таблицы с префиксом team и окончанием id и скормить это системе как название поля? Примерно как-то так:
CODE ( SQL):
скопировать код в буфер обмена
UPDATE `team` LEFT JOIN `buildingbase` ON `team_id`=`buildingbase_team_id` LEFT JOIN `building` ON `buildingbase_building_id`=`building_id` SET `team_+building_name+_id`=`team_+building_name+_id`+'1'
Подскажите, пожалуйста, как правильно записать вот эту конструкцию - `team_+building_name+_id`?
Сейчас это делается 6 отдельными запросами (по количеству записей в таблице building). Хотелось бы это все сделать одним запросом.(Отредактировано автором: 07 Января, 2017 - 21:31:56)
|