Có thể đặt GROUP_CONCAT vào một mệnh đề MYSQL WHERE không?Sử dụng MYSQL GROUP_CONCAT trong mệnh đề WHERE
Tôi có hai bảng (một cho các thành viên và một cho thông tin thanh toán). Ví dụ
viên Bảng
num, memNumber, fullName, coporateName, surname
001, mem0010, Joe Bloggs, NULL, Bloggs
002, mem0015, NULL, BBC
003, mem0017, John Peters, NULL
004, mem0101, Emma Jane, NULL
Bảng thanh toán
num, memberID, subscriptionYear, amount
001, mem0010, 2008, 30
003, mem0010, 2010, 40
004, mem0015, 2010, 40
005, mem0017, 2009, 35
006, mem0101, 2009, 35
007, mem0017, 2010, 40
Tôi đã truy vấn sau đây để lấy thông tin từ cả hai bảng (Tôi đã đơn giản hóa nó để làm cho nó dễ đọc hơn) .
SELECT members.num, members.memNumber , members.fullName , members.corporateName ,
CONCAT(members.corporateName , members.surname) AS searchSurname ,
GROUP_CONCAT(payment.subscriptionYear) As subscriptionYear ,
GROUP_CONCAT(payment.amount) AS amount
FROM members
LEFT JOIN payment ON members.memNumber = payment.memberID
WHERE `subscriptionYear` NOT LIKE '%2009%'
GROUP BY members.num
ORDER BY `searchSurname` ASC
Nhưng loại bỏ "2009" khỏi kết quả của cột subscriptionYear
. Không thể xem liệu năm 2009 có nằm trong GROUP_CONCAT kết quả không?
Tuyệt vời! Cảm ơn bạn đã rất nhanh chóng và hữu ích. Đã không nghĩ rằng nó sẽ được dễ dàng! Vì một lý do nào đó tôi đã không gặp HAVING. này bây giờ works- CHỌN members.num, members.memNumber, members.fullName, members.corporateName, CONCAT (members.corporateName, members.surname) AS searchSurname, GROUP_CONCAT (payment.subscriptionYear) Như subscriptionYear, GROUP_CONCAT (payment.amount) Số tiền AS TỪ thành viên TRÁI PHẢI THANH TOÁN TRÊN thành viên.memNumber = payment.memberID WHERE 'subscriptionYear' NOT LIKE '% 2009%' GROUP BY members.num HAVING subscriptionYear NOT LIKE '% 2009%' ORDER BY 'searchSurname' ASC – iagdotme
Đó không phải là dự phòng? Nếu WHERE của bạn đang xóa các dòng 2009 trước khi nhóm, không có nhóm nào thậm chí có năm 2009 trong nhóm đó? Hoặc chỉ là trường hợp ví dụ của bạn chỉ là một ví dụ chứ không phải là truy vấn thực tế. – MindStalker