SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.12.2012, 11:12:16
Tommy2Wild Tommy2Wild ist offline
Anfänger
 
Registriert seit: Dec 2012
Alter: 37
Beiträge: 4
GROUP BY - Basiswissen / Verständnisprobleme

Hallo zusammen,

ich bin noch relativ neu auf dem Gebiet von MySQL und stelle deshalb eine Frage die für die meisten eher leicht erscheint.

Ich möchte Abfrage aus einer vorliegenden Tabelle aufrufen:

SELECT Count ([tbl Autos].[Reifen]) AS [Reifengesamt ], [tbl Autos].[Reifen], [tbl Autos].[Auto_ID]
FROM [tbl Autos]
Group by [tbl Autos].[Auto_ID];

Ich möchte, dass in meiner Abfrage angezeigt wird, wieviele Reifengesamt ich pro Auto_ID habe. Die GroupBy-Funktion läuft einwandfrei, solang ich nicht [tbl Autos].[Auto_ID] einfüge. Ich bekomme die (im Internet sehr gut bekannte] Fehlermeldung: "Sie wollten eine Abfrage ausführen, die den angegeben Ausdruck "Reifen" nicht als Teil der Aggregatfunktion einschließt.

Worauf muss ich achten, dass diese Fehlermeldung nicht erscheint? Muss ich vielleicht noch eine Bedingung einbauen?

Danke fürs Lesen
Grüße
Mit Zitat antworten
  #2  
Alt 09.12.2012, 11:42:25
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: GROUP BY - Basiswissen / Verständnisprobleme

Die Meldung sagt es ja schon!
Du musst sie einfach nur lesen.
Und verstehen.
Und dann auch noch akzeptieren. Ich weiß, das fällt am schwersten.

Die Regel heißt ganz klar:
Wenn du GROUP BY verwendest, dann darf auch nur das nach dem SELECT auftauchen, was entweder unten im GROUP BY notiert ist, oder per Aggregatfunktion erzeugt wird.



MySQL würde das teilweise durch gehen lassen, aber dann an der Stelle auch Zufallsergebnisse bringen. Andere DBMS hauen dir das um die Ohren.
Mit Zitat antworten
  #3  
Alt 09.12.2012, 11:49:41
Tommy2Wild Tommy2Wild ist offline
Anfänger
 
Registriert seit: Dec 2012
Alter: 37
Beiträge: 4
AW: GROUP BY - Basiswissen / Verständnisprobleme

Hm...Ich möchte ja die Anzahl Reifen pro Auto_ID haben. Mit der Group By-Klausel fasse ich doch Datensätze mit gleichem Feldinhalt zusammen. Muss ich dies dann für beide Felder Reifen und Auto_ID synchron machen?
Mit Zitat antworten
  #4  
Alt 09.12.2012, 12:03:04
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: GROUP BY - Basiswissen / Verständnisprobleme

Code:
SELECT COUNT(a.Reifen) AS Reifengesamt, a.Auto_ID AS Auto_ID
 FROM tbl_Autos AS a
 GROUP BY a.Auto_ID;

Geändert von DokuLeseHemmung (09.12.2012 um 12:25:27 Uhr)
Mit Zitat antworten
  #5  
Alt 09.12.2012, 12:17:39
Tommy2Wild Tommy2Wild ist offline
Anfänger
 
Registriert seit: Dec 2012
Alter: 37
Beiträge: 4
AW: GROUP BY - Basiswissen / Verständnisprobleme

Vielen Dank. Das hat super funktioniert.
Wie ist das wenn man Felder aus mehreren Tabellen beziehen will? Kann das vielleicht auf folgendem Weg lösen?
(Ist zwar nicht so wichtig, aber ich weiß, das ich dem Problem zukünftig begegnen werde)
Meine Idee ist aus einer zweiten Tabelle noch dazugehörige Ersatzteile zuzuordnen.

SELECT COUNT(a.Reifen]) AS Reifengesamt, a.Auto_ID AS Auto_ID, b.Radkappen as Radkappen
FROM tbl_Autos AS a INNER JOIN [tbl Ersatzteile] ON [tbl Autos].[Auto_ID]=[tbl Ersatzteile].[Auto_ID]
GROUP BY a.Auto_ID, b.Auto_ID;
Mit Zitat antworten
  #6  
Alt 09.12.2012, 12:25:00
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: GROUP BY - Basiswissen / Verständnisprobleme

A Visual Explanation of SQL Joins
SQL und relationale Algebra
Die 5 Normal Formen
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Reihenfolge nach JOIN / GROUP BY festlegen c-bob MySQLi/PDO/(MySQL) 9 15.11.2010 07:33:50
Count und Group By Oskar MySQLi/PDO/(MySQL) 13 15.02.2010 00:34:02
Using filesort / temporary - JOIN, GROUP BY, ORDER BY ryda MySQLi/PDO/(MySQL) 4 08.05.2009 22:06:05
Subquery und GROUP BY Heinrich MySQLi/PDO/(MySQL) 2 10.06.2007 22:42:28
Problem mit GROUP bei mySQL-Abfrage c4 PHP für Fortgeschrittene und Experten 0 03.06.2003 16:33:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:44:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt