Verschachteltes SELECT
Hallo,
ich habe grade Probleme, ein verschachteltes Select zu erstellen :(
Folgende Situation:
- Ich habe eine Tabelle mit POP3-Accounts mit Primärschlüssel auf ID.
- Die zweite Tabelle beinhaltet Gruppen, ebenfalls mit einer eindeutigen ID
- Eine dritteTabelle beinhaltet die Zuordnungen dieser Accounts zu bestimmten Gruppen. Die Tabelle hat also zwei Spalten, die gleichzeitig Primärschlüssel sind. Aufbau also: POP3-Account-ID und Gruppen-ID. Somit kann ein Account mehreren Gruppen zugeordnet sein.
Ich hoffe das war so weit verständlich wie ich das meine.
Nun möchte ich mir eine Tabelle ausgeben lassen, in der ich alle Accounts aufliste (z.b. die ID) und in einer zweiten Spalte alle Gruppen mit Komma getrennt. Beispiel:
Account-ID | Gruppen
-----------------------------------------
1 | Grp1, Grp2, Grp4
-----------------------------------------
2 | Grp1, Grp3
Wie kann ich sowas realisieren? oder geht das gar nicht und ich muss es später in PHP abarbeiten?
Antwort schreiben
Antwort 2 von son_quatsch vom 07.10.2021, 07:20 Options
Falls wir von MySQL reden, dann ist das nicht möglich. Selektier die Daten jeweils einzeln, sodass du zwei Felder davon hast und stell sie dann unter PHP entsprechend dar. Mehr Details?
Antwort 3 von kkadsikk vom 07.10.2021, 09:56 Options
Hm ich hatte mir das schon gedacht, dass das so nicht funktioniert. Wie ich das in PHP machen kann, weiß ich allerdings. Ich dachte es geht vielleicht noch etwas einfacher, aber dann weiß ich bescheid.
Aber vielleicht noch mal ne generelle Frage:
Meine Ansicht war immer, dass man bei Abfragen möglichst viel der Datenbank überlassen sollte, so dass später in PHP nicht mehr viel aufbereitet werden muss. Ist das so korrekt oder gibt es Situationen (außer solche wie diese, wo es nicht anders geht), wo man eher mit PHP irgendwelche Konvertierungen etc vornehmen sollte?
Antwort 4 von son_quatsch vom 07.10.2021, 10:15 Options
Das muss man immer wieder aufs neue abwiegen: sind die Datenabfragen immer gleich, dann sollte man vieles von dem DBMS erledigen lassen - dieser erkennt i.d.R. häufige identische Abfragen und pendelt sich entsprechend drauf ein.
Gibt es aber häufige und/oder verschiedene Anfragen, sollte man Umwandlungen und Konvertierungen vermeiden und diese lieber in PHP erledigen, wie z.B. Datumsformatierungen und Stringumwandlungen.
Auf keinen Fall sollte man aber unnötigerweise zuviel Daten abfragen, von denen man unter PHP dann einen Teil wegwirft, z.B. bei einer seitenweisen Darstellung sollte unter MySQL stets auch LIMIT benutzt werden, statt alle Daten abzufragen, in ein Feld zu quetschen und dann nur ein Teil dieses Feldes auszugeben.
Antwort 5 von wiemachichdas vom 07.10.2021, 10:48 Options
Ok. danke für die Hilfe!