sql >> Databáze >  >> RDS >> Mysql

Jak vyřešit chybu MySQL Nemůžete zadat cílovou tabulku X pro aktualizaci v klauzuli FROM?

Důvod, proč to nefunguje, je ten, že MySQL vám neumožňuje odkazovat na tabulku, kterou aktualizujete (může přijít) v rámci dílčího dotazu.

Tomu však lze předejít použitím dotazu namísto tabulky samotné ve FROM, což má za následek zkopírování požadovaných hodnot tabulky namísto odkazování na tu, kterou aktualizujete.

Tak efektivně to bude fungovat, i když je to kontraintuitivní:

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. Jak získat záznamy za posledních 30 minut v MS SQL?

  2. Jak mohu vložit data do databáze MySQL?

  3. Chyba syntaxe oddělovače MySQL

  4. Způsobeno:java.time.DateTimeException:Konflikt nalezen:Pole DayOfWeek 6 se liší od DayOfWeek 2 odvozeného z 2016-01-30