Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.07.2018, 00:25
|
|||
|---|---|---|---|
|
|||
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
Хочу делать поменьше обращений к БД и научиться оптимизировать запросы. Есть 2 таблицы в 1 БД: -orders -driver_orders могу ли я сделать: UPDATE `orders` SET `status`=7 WHERE `id`=33 ТОЛЬКО ЕСЛИ СУЩЕСТВУЕТ (SELECT * FROM `driver_orders` WHERE `driver_id`=7 AND `order_name` = "test") Или наоборот. Если существует запись в другой таблице, то выполнить обновление(вставку, удаление и т.д.) в первой таблице. Сейчас я делаю один запрос, потом через свой язык программировния пишу условие if($check) { выполняю второй запрос } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 04:55
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
ninzzo, используй хранимые процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 05:39
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
ninzzoUPDATE `orders` SET `status`=7 WHERE `id`=33 ТОЛЬКО ЕСЛИ СУЩЕСТВУЕТ (SELECT * FROM `driver_orders` WHERE `driver_id`=7 AND `order_name` = "test") "Существует что? Эти две таблицы должны быть как-то связаны. Скорее всего в таблице driver_orders должно быть поле `id` или `orders_id` Т.Е сейчас ты делаешь запрос типа "Покрасить все машины зеленого цвета если водитель является учеником" А надо "Покрасить все машины зеленого цвета если водитель ДАННОЙ МАШИНЫ является учеником" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 05:52
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
Если короче, то JOIN между таблицами надо сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 05:59
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
ninzzoИли наоборот. Если существует запись в другой таблице, то выполнить обновление(вставку, удаление и т.д.) в первой таблице. Не "наоборот", а еще два других запроса на вставку данных и на удаление (первый был на обновление данных) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 07:32
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
ninzzoмогу ли я сделать: UPDATE `orders` SET `status`=7 WHERE `id`=33 ТОЛЬКО ЕСЛИ СУЩЕСТВУЕТ (SELECT * FROM `driver_orders` WHERE `driver_id`=7 AND `order_name` = "test")SQL-язык примечателен тем, что практически влоб повторяет задачу. "СУЩЕСТВУЕТ" переводится как "EXISTS". И запрос получается Код: sql 1. 2. 3. 4. 5. 6. 7. Поскольку EXISTS проверяет тупо существование записи - нет смысла возвращать все поля из таблицы, достаточно вернуть хоть что-то. Единица вместо звёздочки именно это и демонстрирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 08:47
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
Вы решили задачу: Поменять в таблице `orders` поле `orders`.`status` на 7, если `orders`.`id`=33 и если вдруг в таблице `driver_orders` driver_orders` `driver_id`=7 и `driver_orders`.`order_name` = 'test' Вангую, что автору надо решить немного другую задачу: Поменять в таблице `orders` поле `orders`.`status` на 7, если `orders`.`id`=33 и если таблице `driver_orders` driver_orders` `driver_id`=7 и `driver_orders`.`order_name` = 'test' И некое поле `orders`.VANG_ID=`driver_orders`.VANG_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 09:12
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
Исправляюсь: Вы решили задачу: Поменять в таблице `orders` поле `orders`.`status` на 7, если `orders`.`id`=33 и если вдруг в таблице СУЩЕСТВУЮТ ЗАПИСИ `driver_orders` driver_orders` `driver_id`=7 и `driver_orders`.`order_name` = 'test' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2018, 10:46
|
|||
|---|---|---|---|
Условие. Выполнить это если существует это и это в другой таблице |
|||
|
#18+
982183Вы решили задачуЭто адресовано мне? Ну так я решаю задачу строго ту, которую ставит автор. А что он просит не то, что хочет - так чьи это проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1829711]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 152ms |

| 0 / 0 |
