Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie schreibe ich diese MySQL-Abfrage neu, damit sie diesen Fehler nicht auslöst:Sie können die Zieltabelle „crawlLog“ nicht für die Aktualisierung in der FROM-Klausel angeben?

Warum einen Subselect verwenden? INSERT INTO ... SELECT existiert:

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

Und auf diese Weise sollte es sich nicht über die Verwendung einer Tabelle sowohl im INSERT- als auch im SELECT-Teil beschweren