我有2个查询:
UPDATE dws_photogallery_albums a
SET a.photoscount=(
SELECT COUNT(*) FROM dws_photogallery_photos p
WHERE p.albumid=a.albumid)
UPDATE dws_photoportfolio_photos a
SET a.photoscount=(
SELECT COUNT(*) FROM dws_photoportfolio_photos p
WHERE p.albumid=a.albumid)
第一次工作正常,但第二次给我错误:
#1093 - You can't specify target table 'a' for update in FROM clause
表是相同的(仅名称不同)。
会是什么
UPD:男人,很抱歉,这只是我的错字,查询必须是这样的:
UPDATE dws_photogallery_albums a
SET a.photoscount=(
SELECT COUNT(*) FROM dws_photogallery_photos p
WHERE p.albumid=a.albumid)
UPDATE dws_photoportfolio_albums a
SET a.photoscount=(
SELECT COUNT(*) FROM dws_photoportfolio_photos p
WHERE p.albumid=a.albumid)
他们俩都对我有效。
谢谢答案,需要更多咖啡
最佳答案
这意味着,您无法更新正在读取的表。别名无法解决问题。这可能导致不一致。您必须使用临时表,或者使用变量。
关于mysql - 奇怪的mysql错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10137196/