sql >> Database >  >> RDS >> Mysql

Hoe een MySQL-fout op te lossen U kunt doeltabel X niet specificeren voor update in de FROM-clausule?

De reden waarom dit niet werkt, is dat MySQL u niet toestaat te verwijzen naar de tabel die u aan het bijwerken bent (kan komen) binnen een subquery.

Dit kan echter worden verholpen door een query te gebruiken in plaats van de tabel zelf in de FROM, wat tot gevolg heeft dat de gevraagde tabelwaarden worden gekopieerd in plaats van te verwijzen naar degene die u bijwerkt.

Dus effectief dit, zelfs als het contra-intuïtief is, zal werken:

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. Hoe een afbeelding in de kamerpersistentiebibliotheek invoegen?

  2. Is het slecht voor de prestaties om alle kolommen te selecteren?

  3. Hoe log ik alleen de onbewerkte zoekopdrachten in MySQL in?

  4. Hoe de vergelijking van twee kolommen als één kolom in Oracle te selecteren?