#mysql #sql
#mysql #sql
Вопрос:
Я хочу удалить данные из одной базы данных с помощью выбора из другой.
delete FROM organization o
WHERE o.id IN
(select 100 s.id_status FROM database2.status s)
Для этого, как я могу удалить эти поля из этого выбора из 2-й базы данных? Скорее всего, это упущение с моей стороны, но я не могу точно определить точную проблему, поскольку она работает, когда я заменяю delete from на select * from …
Комментарии:
1. Пожалуйста, предоставьте образцы данных, желаемые результаты и четкое объяснение того, что вы хотите сделать. Ваше намерение неясно.
2. Не уверен, что это хорошая идея. Предполагается, что базы данных должны быть изолированы. Возможно, вам следует получить все идентификаторы, которые вы хотите удалить, а затем использовать другой запрос для удаления.
3. У меня есть несколько строк данных в базе данных 1 — табличная организация. Идентификатор столбца в таблице organization имеет то же значение, что и столбец id_status из другой базы данных в таблице с именем status .
4. Если
o.id
имеет то же значение,s.id_status
что и тогда, зачем вам добавлять100
вs.id_status
столбец?5. @GuillaumeF. В mysql эти две концепции фактически совпадают…
Ответ №1:
Вы хотите удалить из обеих таблиц? Если это так, используйте форму объединения и удаление нескольких таблиц
DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id = t2.id_status 100
или
DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id - 100 = t2.id_status
Если organization
таблица маленькая, то предпочтительнее 2-й вариант. Конечно, индекс by database2.status (id_status)
должен существовать для улучшения.
Нет, я просто хочу удалить данные из организации, поскольку статус должен оставаться неизменным, поскольку он используется для импорта данных в другие таблицы
Если это так, просто используйте DELETE t1.*
вместо DELETE t1.*, t2.*
.
Комментарии:
1. Нет, я просто хочу удалить данные из организации, поскольку статус должен оставаться неизменным, поскольку он используется для импорта данных в другие таблицы. 🙂