Câu lệnh UPDATE không hỗ trợ GROUP BY, xem the documentation. Nếu bạn đang cố gắng để cập nhật t1 với hàng tương ứng từ t2, bạn muốn sử dụng một cái gì đó mệnh đề WHERE như thế này:
UPDATE table t1 SET column1=t2.column1
FROM table t2
JOIN table t3 USING (column2)
WHERE t1.column2=t2.column2;
Nếu bạn cần vào nhóm hàng từ t2/t3 trước khi giao đến t1 , bạn sẽ cần phải sử dụng một cái gì đó subquery như thế này:
UPDATE table t1 SET column1=sq.column1
FROM (
SELECT t2.column1, column2
FROM table t2
JOIN table t3 USING (column2)
GROUP BY column2
) AS sq
WHERE t1.column2=sq.column2;
Mặc dù là công thức đó sẽ không làm việc vì t2.column1 không được bao gồm trong GROUP BY statement (nó sẽ phải là một chức năng tổng hợp thay vì tham chiếu cột đơn giản).
Nếu không, bạn đang cố gắng làm gì ở đây?
Tôi nghĩ bạn cần chứng minh rõ ràng hơn những gì bạn muốn: đề cập đến "t2.column1" khi bạn nhóm theo "t1.column2" sẽ không có ý nghĩa trong truy vấn đơn giản. Bạn cũng không chỉ định bất kỳ điều kiện nào tham gia t2 và t1, điều này thực sự không có ý nghĩa. – araqnid
tôi không nghĩ rằng nó có thể được thực hiện với mysql ít nhất – shigeta