Имеется:
2 таблицы (поручения - это главная таблица):
DROP TABLE IF EXISTS `поручения_temp`;
CREATE TABLE `поручения_temp` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`Задача` varchar(100) NOT NULL,
`Вид_документа` varchar(100) NOT NULL,
`рег_номер` varchar(100) NOT NULL,
`рег_дата` varchar(100) NOT NULL,
`Тема` varchar(250) NOT NULL,
`Автор` varchar(100) NOT NULL,
`Статус` varchar(50) NOT NULL,
`Дата_исполнения` varchar(100) DEFAULT NULL,
`Корреспондент` varchar(100) DEFAULT NULL,
`Получено` varchar(100) DEFAULT NULL,
`Исполнитель` varchar(100) DEFAULT NULL,
`Примечание` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Получено` (`Получено`)
) ENGINE=InnoDB AUTO_INCREMENT=113358 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
DROP TABLE IF EXISTS `поручения`;
CREATE TABLE `поручения` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`Задача` varchar(100) NOT NULL,
`Вид_документа` varchar(100) NOT NULL,
`рег_номер` varchar(100) NOT NULL,
`рег_дата` varchar(100) NOT NULL,
`Тема` varchar(250) NOT NULL,
`Автор` varchar(100) NOT NULL,
`Статус` varchar(50) NOT NULL,
`Дата_исполнения` varchar(100) DEFAULT NULL,
`Корреспондент` varchar(100) DEFAULT NULL,
`Получено` varchar(100) DEFAULT NULL,
`Исполнитель` varchar(100) DEFAULT NULL,
`Примечание` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `Получено` (`Получено`)
) ENGINE=InnoDB AUTO_INCREMENT=113558 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
Необходимо:
Обновить поле статус.
Поле статус в таблице поручения обновляется при условии что поручения_temt.Получено=поручения.Получено
Вопрос:
Как это реализовать?
Мои решения:
пробовал следующую комбинацию:
update поручения set Статус = (Select Статус from поручения_temp where Получено = поручения.Получено) where Получено = поручения_temp.Получено;
Выдает ошибку:
1054 - Unknown column 'поручения_temp.Получено' in 'where clause'
Почему он пишет несуществующий столбец, если столбец есть в наличии.
Примечание:
В таблицах ~110 000 записей