Сформировать запрос с условием - MySQL
Формулировка задачи:
Имеется таблица, в который есть данные. структура следующая: id NOT NULL PRIMARY KEY AI, id_user NOT NULL, id_companion .
Если id_companion инициализирована, то значит, что есть такая же запись в текущей таблице, только поля поменялись местами с id_user. (две симметричные записи)
Внимание, вопрос: как написать запрос, чтобы при условии непустой id_companion - удалить обе записи, иначе только исходную.
Конечно можно выполнить в два запроса с проверкой. Но можно ли написать один запрос с такой зависимостью?
Решение задачи: «Сформировать запрос с условием»
textual
Листинг программы
DELETE FROM <table_name> WHERE id = <id> OR id = ( SELECT id FROM <table_name> WHERE id_user IS NOT NULL AND id_user = ( SELECT id_companion FROM <table_name> WHERE id = <id> ) )
Объяснение кода листинга программы
DELETE FROM <table_name>
— команда удаления записей из таблицы.<table_name>
— название таблицы, из которой удаляются записи.WHERE
— ключевое слово, вводящее условие для удаления записей.id = <id>
— условие для удаления записей с определенным значением поляid
.(SELECT id FROM <table_name> WHERE id_user IS NOT NULL AND id_user = (SELECT id_companion FROM <table_name> WHERE id = <id>))
— вложенный запрос, который возвращает значение поляid
для записи, у которой полеid_user
не равно null и полеid_companion
равно значению поляid
текущей записи.id = (SELECT id FROM <table_name> WHERE id_user IS NOT NULL AND id_user = (SELECT id_companion FROM <table_name> WHERE id = <id>))
— условие для удаления записей, у которых полеid
равно значению поляid
записи, у которой полеid_user
не равно null и полеid_companion
равно значению поляid
текущей записи.<id>
— значение поляid
, для которого выполняется запрос на удаление записей.(SELECT id_companion FROM <table_name> WHERE id = <id>)
— вложенный запрос, который возвращает значение поляid_companion
для записи, у которой полеid
равно значению поляid
текущей записи.<id_user>
— значение поляid_user
, для которого выполняется запрос на удаление записей.<id_companion>
— значение поляid_companion
, для которого выполняется запрос на удаление записей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д