SQL MySQL Mehrfach-JOIN Group By

ClocxHD

Lt. Junior Grade
Registriert
Aug. 2014
Beiträge
376
Hallo,

erstmal mein SELECT, so, wie es jetzt ist:
Code:
SELECT s.ID, s.Name, s.Port, i.IP_Address, h.Hostname FROM Service s
JOIN IP i ON s.ipID = i.ID
JOIN Hosts h ON s.hID = h.ID
ORDER BY s.Port

Ausgabe:
Screenshot_98.jpg


Jetzt möchte ich noch für jeden Host eine getrennte Ausgabe haben, also für Host 1 mit zugehörigen Diensten etc. ...

Dies habe ich u.a. mit folgendem Statement versucht:
Code:
SELECT
	s.ID,
	s.Name,
	s.Port,
	i.IP_Address,
	h.Hostname
FROM Service s
JOIN IP i ON s.ipID = i.ID
JOIN Hosts h ON s.hID = h.ID
GROUP BY s.ID,
	s.Name,
	s.Port,
	i.IP_Address,
	h.Hostname

Jedoch erhalte ich damit die gleiche Ausgabe.

Wie mache ich das richtig?

LG,
ClocxHD
 
Bei einem GROUP BY auf alle Werte kommt natuerlich das selbe raus, da die Datensaetze alle unterschiedlich sind und somit nicht gruppiert werden koennen.

Wenn du nur einen Eintrag haben moechtest musst du schon mit WHERE angeben welchen genau.
WHERE h.Hostname = 'Host 1'
 
Je nachdem wie du die Services angezeigt haben möchtest, könntest du sie auch mittels CONCAT Kommagetrennt in eine neue Spalte schreiben:

Host | Services
------------------
H1 | Nginx, Proftpd
H2 | MySQL
H3 | MongoDB, RabbitMQ
....
 
Das Problem an dem "WHERE" ist, dass ich das ganze ja dynamisch halten will, es können immer Hosts dazu kommen
Ergänzung ()

Edit: Hat sich erledigt, habe das mit Twig realisiert, trotzdem vielen Dank! :)
 
Zurück
Oben