Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL | Nie możesz określić tabeli docelowej „a” do aktualizacji w klauzuli FROM

Nie możesz usunąć z tabeli i odwoływać się do tej samej tabeli w podzapytaniu — tylko ograniczenie MySQL. Powinno działać coś takiego:

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' 

Ważną częścią jest USING . Jeśli po prostu dołączysz do dwóch tabel, usuniesz rekordy z obu. USING mówi MySQL, aby używał tych tabel do przetwarzania, ale usuwał tylko z tabel w FROM klauzula.

http://dev.mysql.com/doc/refman/5.0 /pl/usuń.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. Limit MySQL od kolejności malejącej

  2. PHP — jak sprawdzić, czy rekord został pomyślnie usunięty

  3. Różnica w MySQL JOIN vs LEFT JOIN

  4. JPA upiera się wiele do wielu

  5. Jaki jest maksymalny rozmiar zapytania dla mysql?