sql >> Databasteknik >  >> RDS >> Mysql

Hur skriver jag om den här MySQL-frågan så att den inte ger det här felet:Du kan inte ange måltabellen 'crawlLog' för uppdatering i FROM-satsen?

Varför använda ett Subselect? INSERT INTO ... SELECT finns:

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

Och på så sätt ska den inte klaga på att använda en tabell både i INSERT- och SELECT-delen



  1. Välj endast användare från en tabell om de inte finns i en annan

  2. Lagra lösenord för MYSQL i PHP-applikationen på ett säkert sätt

  3. Beräkna (summa, max, medel) kommaseparerad kolumn i mysql

  4. Ställa in anslutningstidszon med Spring och DBCP och MySQL