Я пытаюсь обновить столбец в visitors
. Я также использую инструкцию sub select для части запроса SET
.mySQL: инструкция Sub SELECT в команде UPDATE
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
Я понятия не имею, почему я не могу получить доступ к «V» объект в пределах внутреннего оператора выбора. Я также не хочу использовать несколько операторов, так как это может вызвать проблемы с производительностью.
Вопрос: Как использовать объект «v» во внутреннем выборе?
Update: Это весь запрос
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"
Это не будет работать, так как у меня есть доступ к обоим объектам посетителя внутри «....» в ИНЕКЕ. – bytecode77
можете ли вы показать весь свой sql? –
Я добавил весь вопрос к вопросу. – bytecode77