Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso riscrivere questa query MySQL in modo che non generi questo errore:non è possibile specificare la tabella di destinazione "crawlLog" per l'aggiornamento nella clausola FROM?

Perché usare una sottoselezione? INSERT IN ... SELECT esiste:

INSERT INTO crawlLog (companyId, timeStartCrawling)
SELECT companies.id, NOW()
FROM companies
LEFT OUTER JOIN crawlLog
ON companies.id = crawlLog.companyId
WHERE crawlLog.companyId IS NULL
LIMIT 1

E in questo modo non dovrebbe lamentarsi dell'utilizzo di una tabella sia nella parte INSERT che SELECT