2012-04-28 14 views
16

thể trùng lặp:
every derived table must have its own aliaschọn max() từ đếm()

Tôi cần phải tìm tối đa của các hành động cho mỗi người dùng

cột của bảng: action_id, action_status, user

yêu cầu:

SELECT MAX(`counted`) FROM 
(
SELECT COUNT(*) AS `counted` 
FROM `table_actions` 
WHERE `status` = "good" 
GROUP BY `user` 
) 

thông báo lỗi: "Mỗi bảng có nguồn gốc phải có bí danh riêng của mình"

gì là sai ..

+0

Lần sau hãy tìm kiếm Stack Overflow cho câu trả lời đã tồn tại. – kapa

+1

yep, trùng lặp ... lần sau tôi sẽ chú ý hơn – Zdomb

Trả lời

25

Đó chỉ có nghĩa là MySQL nhấn mạnh rằng bạn cung cấp cho khu vực nội SELECT một cái tên, như thế nào? :

SELECT MAX(counted) FROM 
(
    SELECT COUNT(*) AS counted 
    FROM table_actions 
    WHERE status = "good" 
    GROUP BY user 
) AS counts; 
+0

omg ... thay đổi nhỏ như vậy ... thx! – Zdomb

+1

nếu bạn cũng chọn trạng thái hàng, nó sẽ không chính xác: 'chọn tối đa (được tính), trạng thái từ (trạng thái đếm (*) là đã đếm, trạng thái ...' sẽ không hoạt động ... "sẽ không chính xác. Tôi thực sự không biết cách sửa lỗi này – Bengalaa