Giả sử tôi có một bảng đăng ký:Làm thế nào để kiểm tra xem giá trị tồn tại trong mỗi nhóm (sau khi nhóm bằng)
uid | subscription_type
------------------------
Alex | type1
Alex | type2
Alex | type3
Alex | type4
Ben | type2
Ben | type3
Ben | type4
Và muốn chọn chỉ những người dùng có nhiều hơn 2 thuê bao nhưng không bao giờ đăng ký với loại 1
Kết quả mong đợi chỉ chọn "Bến".
tôi dễ dàng có thể tìm thấy những người dùng có nhiều hơn 2 lượt đăng ký sử dụng:
SELECT uid
FROM subscribes
GROUP BY uid
HAVING COUNT(*) > 2
Nhưng làm thế nào để kiểm tra xem trong một nhóm một số giá trị không bao giờ tồn tại?
Cảm ơn sự giúp đỡ!
'Nhưng làm thế nào để kiểm tra xem trong một nhóm một số giá trị không bao giờ tồn tại 'có lẽ bạn cần phải thêm một? mệnh đề where với 'NOT EXITS (..)'! – wildplasser
Tôi cố gắng này: CHỌN uid TỪ đăng ký cao GROUP BY cid, cung cấp HAVING COUNT (*)> 2 AND NOT EXISTS ( \t CHỌN uid, SUBSCRIPTION_TYPE \t TỪ đăng ký cao \t ĐÂU SUBSCRIPTION_TYPE = 'đổi mới') Nhưng nó không hoạt động, trả về bảng trống – Spivakos
Bạn cần * ghép nối * uid trong truy vấn phụ với truy vấn chính. Sau đó, nó sẽ làm việc. Ngoài ra: nó phải nằm trong mệnh đề 'WHERE', không phải trong mệnh đề có. – wildplasser