Czy można umieścić GROUP_CONCAT w klauzuli WHYS MYSQL?Używanie MYSQL GROUP_CONCAT w klauzuli WHERE
Mam dwie tabele (jedną dla członków i jedną dla informacji o płatności). Na przykład
TabelaCzłonkowie
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
Płatność Tabela
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
Mam następującą kwerendę, aby pobrać informacje z obu tabel (I uprościły to aby uczynić go bardziej czytelnym) .
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
Ale usuwa „2009” z wynikami kolumnie subscriptionYear
. Nie widzisz, czy rok 2009 jest w wynikowym GROUP_CONCAT?
Fantastyczne! Dzięki, że jesteś taki szybki i pomocny. Nie sądziłem, że to będzie takie proste! Z jakiegoś powodu nie natknąłem się na HAVING. to teraz works- SELECT members.num, members.memNumber, members.fullName, members.corporateName, CONCAT (members.corporateName, members.surname) jako searchSurname, group_concat (payment.subscriptionYear) jako subscriptionYear, GROUP_CONCAT (payment.amount) jako ilość od członków LEFT JOIN wpłata na members.memNumber = payment.memberID WHERE 'subscriptionYear' NOT LIKE '% 2009%' GROUP BY members.num BIORĄC subscriptionYear nie jak '% 2009%' ORDER BY 'searchSurname' ASC – iagdotme
Czy to nie jest zbyteczne? Jeśli WHERE usuwa linie 2009 przed grupowaniem, żadne ugrupowanie nie powinno mieć w nim 2009 r.? Czy jest to tylko przypadek twojego przykładu będącego tylko przykładem, a nie faktycznym zapytaniem. – MindStalker