У меня есть две таблицы. Одна таблица предназначена как история транзакций, а другая - журнал деталей участника. Когда отчет запускается, я хочу переместить части деталей участника в историю транзакций, но ТАКЖЕ обновлять некоторые записи полей, которые иначе не существовали бы.Можно ли вставлять значения из одной таблицы в другую И обновлять значения полей в одном запросе?
Можно ли выбрать все записи, которые отвечают определенным критериям, вставить только части соответствующей строки в другую таблицу И обновить другие поля в одном запросе?
Например:
В таблице 2, у меня есть имя члена, дата регистрации, и MemberId. Я хочу переместить вышеуказанные записи в таблицу 1, но также обновить поле (статус), равное «обработанному».
Примечание: Я также использую php и pdo для подключения к базе данных mysql.
Возможно ли это в рамках одного запроса?
Почему вы хотите сделать это в одном запросе? Почему бы не обойти два запроса в [транзакции] (http://dev.mysql.com/doc/refman/5.0/en/commit.html)? – ircmaxell
хорошая точка - чем больше я думаю о том, тем более бесполезным кажется один запрос ... – JM4
Два читаемых, эффективных запроса лучше, чем один большой запутанный запрос в любой день недели. Как с точки зрения семантики, так и с точки зрения производительности. Не попадайте в ловушку меньше, всегда лучше (есть, конечно, компромиссы, но это не универсальная правда) ... – ircmaxell