Ist es möglich, GROUP_CONCAT in eine MYSQL WHERE-Klausel zu setzen?Verwenden von MYSQL GROUP_CONCAT in der WHERE-Klausel
Ich habe zwei Tabellen (eine für Mitglieder und eine für Zahlungsinformationen). Zum Beispiel
Mitglieder Tabelle
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
Zahlung Tabelle
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
ich die folgende Abfrage Informationen abgerufen wurden aus beiden Tabellen (I vereinfacht es, um es besser lesbar) .
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
Aber es entfernt die „2009“ von den Ergebnissen der subscriptionYear
Spalte. Kann nicht sehen, ob 2009 in der resultierenden GROUP_CONCAT ist?
Fantastisch! Danke, dass du so schnell und hilfsbereit bist. Hätte nicht gedacht, dass es so einfach wäre! Aus irgendeinem Grund war ich HAVING nicht begegnet. Diese Werke-jetzt SELECT members.num, members.memNumber, members.fullName, members.corporateName, CONCAT (members.corporateName, members.surname) AS searchSurname, GROUP_CONCAT (payment.subscriptionYear) Als subscriptionYear, GROUP_CONCAT (payment.amount) AS Menge von Mitgliedern LEFT JOIN Zahlung ON members.memNumber = payment.memberID WHERE 'subscriptionYear' NOT LIKE '% 2009%' GROUP BY members.num MIT subscriptionYear NOT LIKE '% 2009%' ORDER BY 'searchSurname' ASC – iagdotme
Ist das nicht redundant? Wenn Ihr WHERE 2009 Zeilen vor der Gruppierung entfernt, sollte keine Gruppierung überhaupt 2009 enthalten haben? Oder ist Ihr Beispiel nur ein Beispiel und nicht die eigentliche Abfrage? – MindStalker