2016-07-30 3 views
-5

Ich habe die folgende Datenbank:Schwierige MYSQL-Abfrage

Und ich möchte Sie alle Einträge mit den gleichen teamname zählen, so dass ich weiß, wie viele Spieler in einem Team ist. Dann möchte ich überprüfen, ob die Teamgröße die Größe der NumbersOfMembers erreicht hat und wenn nicht, zeig sie mir.

Die Idee ist, dass ich sehen kann, welches Team nicht vollständig abgeschlossen ist.

+0

'SELECT' -' COUNT() '-' WHERE'-Klausel, Bedingungsanweisungen, Echo etc .. Sie können alle oben sehen, um Sie zu beginnen.Die Frage ist viel zu breit und zu viele mögliche Antworten enthalten. Gehen Sie durch Tutorials/Handbücher und kommen Sie zurück, wenn Sie ein Problem mit dem Code haben. Wir helfen Ihnen dann gerne weiter. –

+1

Alles, was gepostet wurde, ist eine Programmbeschreibung. Allerdings müssen Sie [eine Frage stellen] (// stackoverflow.com/help/how-to-ask). Wir können nicht sicher sein, was Sie von uns wollen. Bitte [bearbeiten] Sie Ihren Beitrag, um eine gültige Frage zu enthalten, die wir beantworten können. Erinnerung: stellen Sie sicher, dass Sie wissen, was hier am Thema ist (// stackoverflow.com/help/on-topic), wenn Sie uns bitten, das Programm für Sie zu schreiben, und Vorschläge sind off-topic. – FrankerZ

Antwort

0

Feste und getestete Version von Dans answer:

SELECT teamname, count(*) AS TeamSize, max(numberOfMembers) AS maxMembers 
FROM yourTable 
GROUP BY teamname 
HAVING TeamSize < maxMembers 

Aber Sie Ihren Tisch normalisieren sollte. Keine Notwendigkeit, die allgemeinen Teamdaten und Einschränkungen für jeden Benutzer zu wiederholen.

+0

Wow Guys Ich habe nicht so schnell erwartet und gute Antworten ja es ist genau das, wonach ich gesucht habe, vielen Dank . – WEIDER

1

Würde so etwas funktionieren?

SELECT teamname, count(*) as TeamSize group by teamname having count(*) < numberOfMembers 

Dies ist nur eine theoretische Antwort, ungetestet.

+0

Um numberOfMembers in die having-Klausel zu verwenden, müssen Sie es in die Gruppe übernehmen oder + auslassen – Philipp