Можно ли поместить GROUP_CONCAT в предложение MYSQL WHERE?Использование MYSQL GROUP_CONCAT в предложении WHERE
У меня есть две таблицы (одна для членов и одна для информации об оплате). Например
Пользователи Таблица
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
колонны. Не можете увидеть, есть ли в результирующей GROUP_CONCAT 2009?
Фантастический! Спасибо, что так быстро и полезно. Не думал, что это будет так просто! По какой-то причине я не столкнулся с HAVING. Теперь это работы- ВЫБОР members.num, members.memNumber, members.fullName, members.corporateName, CONCAT (members.corporateName, members.surname) А.С. searchSurname, GROUP_CONCAT (payment.subscriptionYear) As subscriptionYear, GROUP_CONCAT (payment.amount) как количество от членов LEFT JOIN платежа ПО members.memNumber = payment.memberID где 'subscriptionYear' не так, как '% 2009%' GROUP BY members.num HAVING subscriptionYear не нравится '% 2009%' ЗАКАЗ BY 'searchSurname' ASC – iagdotme
Разве это не избыточно? Если ваш WHERE удаляет строки 2009 года перед группировкой, в группе не должно быть даже 2009? Или это просто случай, когда ваш пример является просто примером, а не фактическим запросом. – MindStalker