なぜ副選択を使用するのですか? INSERT INTO ... SELECTが存在します:
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
そうすれば、INSERT部分とSELECT部分の両方でテーブルを使用することについて文句を言うべきではありません