5
MYSQL WHERE 절에 GROUP_CONCAT을 넣을 수 있습니까?WHERE 절에서 MYSQL GROUP_CONCAT 사용
두 개의 테이블이 있습니다 (하나는 회원 용이고 다른 하나는 지불 정보 용). 예를
회원 테이블에 대한
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 결과가 표시되지 않습니까?
환상적! 너무 빠르고 도움이되어 주셔서 감사합니다. 그렇게 쉬울 것이라고 생각하지 않았습니다! 웬일인지 나는 간 적이 없었다. 이 이제 SELECT members.num, searchSurname AS members.memNumber, members.fullName, members.corporateName, CONCAT (members.corporateName, members.surname) GROUP_CONCAT (payment.subscriptionYear) subscriptionYear로서 GROUP_CONCAT을 작품 - 양 AS (payment.amount)는 회원들로부터 WHERE'subscriptionYear' NOT LIKE '% 2천9%'members.num BY GROUP subscriptionYear NOT LIKE '% 2천9%을'HAVING members.memNumber = payment.memberID ON 지불 가입 LEFT ORDER BY'searchSurname' ASC – iagdotme
그렇게 중복되지 않습니까? 그룹화하기 전에 2009 라인을 제거하려는 경우 그룹화에 2009 년이 있어야합니다. 아니면 실제 쿼리가 아닌 예제 일뿐입니다. – MindStalker