#mysql
#mysql
Вопрос:
Я пытаюсь обновить таблицу путем объединения с двумя другими таблицами, но мне нужно сгруппировать по идентификатору обновленной таблицы, что-то вроде :
UPDATE T1
SET T1.AForeignID = T3.ID
FROM TableOne T1
LEFT JOIN TableTwo T2 ON T2.ID = T1.BForeignID
LEFT JOIN TableThree T3 ON T3.Code = T2.Code AND T3.ACode = T1.ACode
GROUP BY T1.ID
Но я не могу использовать GROUP BY, это показывает ошибку.
Ответ №1:
Вы не можете использовать group by без функции агрегирования (min(), max(), count().
предложение GROUP BY определяет столбцы, которые используются для выполнения агрегирования
UPDATE T1
FROM TableOne T1
LEFT JOIN TableTwo T2 ON T2.ID = T1.BForeignID
LEFT JOIN TableThree T3 ON T3.Code = T2.Code AND T3.ACode = T1.ACode
SET T1.AForeignID = T3.ID
и обновление с помощью join должно использовать ОБНОВЛЕНИЕ.. От.. Синтаксис ОБЪЕДИНЕНИЯ
..