Mysql
 sql >> база данни >  >> RDS >> Mysql

Изтриване, актуализиране с производни таблици?

Не можете директно да изтриете от подзаявката, но все пак можете да я използвате, ако желаете, просто ще трябва да я използвате в JOIN :

DELETE usrs
FROM usrs
    INNER JOIN (
        SELECT * FROM usrs WHERE name = 'john'
    ) t ON usrs.Id = t.Id

Или можете да използвате IN :

DELETE usrs
WHERE ID IN (
   SELECT ID
   FROM usrs
   WHERE name = 'John'
)

Като се има предвид това, за този пример не знам защо бихте искали подзаявка:

DELETE usrs WHERE name = 'John'

Редактиране на базата на коментари. За да изтриете от няколко таблици едновременно, можете да имате няколко DELETE изрази или можете да използвате нещо като следното:

delete t1, t2, t3
from (select 'john' as usr) t
  left join t1 on t.usr=t1.usr
  left join t2 on t.usr=t2.usr
  left join t3 on t.usr=t3.usr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да попълним таблица с диапазон от дати?

  2. mysql се пресичат

  3. създаване на база данни в mysql от java

  4. Подзаявки с EXISTS срещу IN - MySQL

  5. MySQL Connect чрез прокси в Java