Действительно ли возможно поместить GROUP_CONCAT в оператор Where MySQL?
У меня есть две таблицы (один для участников и один для получения информации об оплате). Например,
Членская таблица
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
Платежная таблица
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
У меня есть следующий запрос для получения информации от обеих таблиц (я упростил его для создания его более читаемым).
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
Но это удаляет "2009" из результатов subscriptionYear
столбец. Не видьте, находится ли 2009 в результирующем GROUP_CONCAT?
Где случается ДО группировки, вы хотите использовать HAVING, что случается после группировки.
.