Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2015, 23:06   #1
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

возможно ли в одном запросе к базе использовать операторы SELECT, DELETE и UPDATE если можно то как (в примере)
к примеру из одной таблици надо SELECT из второй DELETE из третей UPDATE и все это в одном запросе

это одним запросом сделать
Код:
$stmt = $PDO->prepare("select * FROM `table` where `status`=? and `date_of`<?");
$stmt->execute(array(0,time()));
$stmt->setFetchMode(PDO::FETCH_LAZY);
while($ROW_K = $stmt->fetch())
{

	$stmt = $PDO->prepare("DELETE FROM `table` WHERE `id`=? and `date_off`<? and `status_works`='0'");
	$stmt->execute(array($ROW_K->id,time()));

	$stmt  = $PDO->prepare("UPDATE `table2` SET `start_ta`=`start_ta`-? WHERE `id`=?");
	$stmt->execute(array(1,$ROW_K->id));
}

Последний раз редактировалось Stilet; 19.09.2015 в 09:19.
Dante5 вне форума Ответить с цитированием
Старый 19.09.2015, 09:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Нет. Одновременно все три в одном запросе не получится. Пиши хранимую процедуру, в которой будешь вызывать запросы, тогда в ПХП не придется их писать.
Или описывай подробно задачу, почему тее понадобились все три сразу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2015, 10:25   #3
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

необходимо удалить запись из table1, а после удаления обновить table2 по WHERE `id`=? гдн id будет ид удаленной записи из table1 как-то так

или хотя бы DELETE и UPDATE без SELECT
Dante5 вне форума Ответить с цитированием
Старый 19.09.2015, 11:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Делай двумя запросами. Комбинировать можно с только с SELECT, поскольку только он возвращает набор данных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2015, 11:41   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Сначала обновить, привязавшись во where к id существующей записи другой таблицы. И только после этого удалить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание процедур select, delete, update, insert (с выходным параметром) NatRez SQL, базы данных 4 21.10.2012 19:54
UPDATE, INSERT, DELETE в DataGridView C# Ramirag Помощь студентам 3 04.09.2011 13:24
Использование в одном запросе несколько БД Сергей089 SQL, базы данных 1 02.08.2010 11:33
Delete и Update crit БД в Delphi 58 18.05.2009 20:49
UPDATE и DELETE Дамир БД в Delphi 3 13.03.2007 01:44