の列を更新しようとしていますvisitors
。SET
また、更新クエリの一部にsubselectステートメントを使用しています。
UPDATE
visitors AS v
SET
v.IsFirstVisit = (SELECT COUNT(*) FROM visitors AS v2 WHERE ..... LIMIT 1)
ただし、mySQLはこのエラーメッセージを返します
#1093 - You can't specify target table 'v' for update in FROM clause
内側のselectステートメント内の「v」オブジェクトにアクセスできない理由がわかりません。また、パフォーマンスの問題が発生する可能性があるため、複数のステートメントを使用したくありません。
質問:内部選択内で「v」オブジェクトを使用するにはどうすればよいですか?
更新:これはクエリ全体です
UPDATE
visitors AS v
SET
IsFirstVisit = (SELECT Count(*) FROM visitors AS v2 WHERE v2.VisitorId < v.VisitorId AND v2.IP = v.IP AND v2.DateTime > v.DateTime [TODO:SUBTRACT30MINUTES] LIMIT 1)
WHERE
VisitorId = "991"