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

MySQL | Не можете да посочите целева таблица 'a' за актуализация в клаузата FROM

Не можете да изтриете от таблица и да препратите към същата таблица в подзаявка – просто ограничение на MySQL. Нещо като следното трябва да работи:

DELETE FROM table_a 
USING table_a
INNER JOIN table_b
    ON table_a.code = table_b.code
    AND table_b.id = table_a.b_id
    AND table_b.table = 'testTable'
WHERE table_a.object_id = 1 
    AND table_a.code = 'code' 

Важната част е USING . Ако просто се присъедините към двете таблици, ще изтриете записи и от двете. USING казва на MySQL да използва тези таблици за обработка, но само изтрива от таблиците в FROM клауза.

http://dev.mysql.com/doc/refman/5.0 /bg/delete.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изберете 1 произволен ред със сложно филтриране

  2. Не мога да вляза с създаден потребител в mysql

  3. PHP:Концепция за система за оценка със звезди?

  4. Python, преобразувайте 4-байтов символ, за да избегнете грешка в MySQL Неправилна стойност на низа:

  5. Изпълнете оператор чрез пряк път в MySQLWorkbench