是否可以将GROUP_CONCAT放入MYSQL 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
但它从subscriptionYear
列的结果中删除了“2009”。无法看到2009年是否在最终的GROUP_CONCAT中?
答案 0 :(得分:24)
在分组之前,你想要使用HAVING,这是在分组之后发生的。