Мне нужно немного помочь в заявлении об обновлении. У меня есть следующий запрос
update totals
set contacts = (SELECT
COUNT(*)
FROM contact_events c
JOIN users u
ON c.user = u.id
GROUP BY c.user)
where c.user = ext_id;
Но когда я запускаю его, я получаю "неизвестный столбец c.user в where clause".
Однако я не могу применить псевдоним в этом соединении, поэтому я должен делать что-то неправильно с синтаксисом.
Вы должны использовать JOIN
для выполнения такой операции
UPDATE totals t
INNER JOIN (SELECT c.user,
COUNT(*) tot
FROM contact_events c
JOIN users u ON c.user = u.id GROUP BY c.user) u ON u.user = t.ext_id
SET t.contacts = u.tot
c
находится в вашем подзапросе, поэтому вне основного контекста. Это всегда имеет место в подзапросах, где псевдонимы, используемые в скобках, используются только в скобках. Ваш запрос необходимо будет переписать, чтобы использовать правильный синтаксис для оператора UPDATE, который ссылается на другую таблицу.