5
Đã tự hỏi nếu ai đó có thể giúp tôi ra một chút với truy vấn này:Cột không tồn tại?
SELECT u1.id,count(DISTINCT u2.userstatus) as TEMPCOLUMN FROM users AS u1
JOIN friendssym ON u1.id = friendssym.user_id
JOIN (SELECT * FROM users) as u2 ON friendssym.friend_id=u2.id
WHERE TEMPCOLUMN=1
group by u1.id;
Tôi muốn chỉ có kết quả nơi count (được đổi tên) là bằng 1. Tôi nhận được một lỗi với truy vấn này:
ERROR: column "tempcolumn" does not exist
Nhưng cột nên tồn tại, phải không? Bất cứ ai có thể hỗ trợ? Cảm ơn!
Tôi đã sử dụng bí danh cột vì WHERE sẽ không cho phép tôi sử dụng COUNT trực tiếp (nó nói nó không thể sử dụng tập hợp) nhưng HAVING hoạt động hoàn hảo. Cảm ơn đã giúp đỡ! – Joseph
@Airjoe: Đúng, không thể sử dụng hàm tổng hợp (COUNT, SUM, MIN hoặc MAX) trong mệnh đề WHERE bên ngoài truy vấn phụ - cần sử dụng mệnh đề HAVING cho điều đó. –