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

Jak rozwiązać błąd MySQL Nie możesz określić docelowej tabeli X do aktualizacji w klauzuli FROM?

Powodem, dla którego to nie działa, jest to, że MySQL nie pozwala na odwoływanie się do aktualizowanej tabeli (może się pojawić) w podzapytaniu.

Można to jednak rozwiązać, używając zapytania zamiast samej tabeli w FROM, co powoduje skopiowanie żądanych wartości tabeli zamiast odwoływania się do aktualizowanej.

Tak więc skutecznie, nawet jeśli jest to sprzeczne z intuicją, zadziała :

DELETE FROM cancome WHERE user_id IN
 ( SELECT user_id FROM (SELECT * FROM cancome) AS cancomesub
 GROUP BY user_id HAVING COUNT(user_id)>3 )
 limit 3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę użyć warunku OR w wyrażeniu MySQL CASE?

  2. MySQL Utilities - plik opcji ~/.my.cnf

  3. Laravel po lewej Dołącz tylko do ostatniego rekordu prawej tabeli

  4. Wyjątek Java JDBC MySQL:operacja niedozwolona po zamknięciu zestawu wyników

  5. Zapytanie mysql do dynamicznej konwersji danych wierszy na kolumny