Tôi đang cố tạo truy vấn cập nhật và thực hiện ít tiến bộ trong việc nhận cú pháp đúng. Truy vấn sau đang hoạt động:Truy vấn cập nhật MySQL với tham gia trái và nhóm theo
SELECT t.Index1, t.Index2, COUNT(m.EventType)
FROM Table t
LEFT JOIN MEvents m ON
(m.Index1 = t.Index1 AND
m.Index2 = t.Index2 AND
(m.EventType = 'A' OR m.EventType = 'B')
)
WHERE (t.SpecialEventCount IS NULL)
GROUP BY t.Index1, t.Index2
Nó tạo danh sách ba nhóm Index1, Index2, EventCounts. Nó chỉ thực hiện điều này trong trường hợp t.SpecialEventCount là NULL. Truy vấn cập nhật mà tôi đang cố gắng viết nên đặt SpecialEventCount này thành số đó, tức là COUNT (m.EventType) trong truy vấn ở trên. Con số này có thể là 0 hoặc bất kỳ số dương nào (do đó là phần nối trái). Chỉ số 1 và chỉ số 2 cùng nhau là duy nhất trong Bảng t và chúng được sử dụng để xác định các sự kiện trong MEvent.
Làm cách nào để sửa đổi truy vấn chọn để trở thành truy vấn cập nhật? I E. một cái gì đó như
UPDATE Table SET SpecialEventCount=COUNT(m.EventType).....
nhưng tôi nhầm lẫn những gì để đặt ở đâu và đã thất bại với nhiều dự đoán khác nhau.
Cảm ơn, trông giống như nhiều thứ tôi đã thử. Thật không may trở lại với lỗi sau: # 1064 - Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để có cú pháp đúng để sử dụng gần 'GROUP BY t.Index1, t.Index2' tại dòng 9 – Rob
bằng phiên bản 5.0.90-log nếu điều này giúp – Rob
được chỉnh sửa để sử dụng truy vấn phụ – Hammerite