sql >> Databasteknik >  >> RDS >> Mysql

Hur man löser MySQL-fel Du kan inte ange måltabell X för uppdatering i FROM-satsen?

Anledningen till att detta inte fungerar är att MySQL inte tillåter dig att referera till tabellen som du uppdaterar (kan komma) i en underfråga.

Detta kan dock övervinnas genom att använda en fråga istället för själva tabellen i FROM, vilket har effekten att kopiera de begärda tabellvärdena istället för att referera till den som du uppdaterar.

Så effektivt kommer detta, även om det är kontraintuitivt, att fungera :

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. Dataåtkomst från Raspberry Pi

  2. Fråga extremt långsam i koden men snabb i SSMS

  3. MySQL-utlösare för att ställa in kolumn till max + 1 fungerar inte

  4. hibernate kunde inte hämta nästa sekvensvärde