Hallo,
ich habe folgende Datenbankstruktur
Einrichtungen
ID | Bezeichnung
Standorte
ID | Strasse | Nr | PLZ | Ort
Einrichtungen_Standorte
ID | ID_Einrichtung | ID_Standorte
Wie zu erahnen ist, handelt es sich um die M:N Beziehung:
Einrichtung -> Einrichtungen_Standorte -> Standorte
Ich möchte mit MySQL folgendes ausgeben:
Alle Einrichtungen des Standortes (mit z.B. der ID 15). In einer Zelle mit Komma getrennt. Es geht also darum, ohne PHP oder sonstige Hilfsmittel das Ergebnis dynamisch vieler ROWS in einer Zelle auszugeben.
Beispiel:
Standort 14 | Standort 15
HUI, BZU | OOI, HUI, POS
Ist das möglich? Ich find keine passende Funktion dafür… ein „CONCAT((SELECT e.Bezeichnung […] WHERE s.ID = 15)) AS Standort 15“ funktioniert zB nicht dafür.
Ich hoffe das ist verständlich genug geschildert.
Mit freundlichen Grüßen,
Peter Pils
             
            
              
              
              
            
            
           
          
            
            
              Moin, Peter Pils,
relationale Datenbanken bestehen aus Tabellen, diese aus Spalten und Zeilen. SQL-Operationen können Spalten nebeneinanderstellen und Zeilen untereinander - mehr geht nicht (Selection lassen wir jetzt mal außen vor).
Mit üblen Tricks lassen sich Zeilen zu Spalten ummodeln, das aber auch nur, indem jede einzelne Zeile namentlich angesprochen wird. Bei mehr als zweien kann einen das schon in den Wahnsinn treiben.
Also: Brav programmieren lernen oder eine sequentielle Datei erzeugen, die mit den üblichen Verdächtigen wie perl malträtiert werden kann.
Gruß Ralf
             
            
              
              
              
            
            
           
          
            
            
              
Hallo,
Ist das möglich? Ich find keine passende Funktion dafür… ein
„CONCAT((SELECT e.Bezeichnung […] WHERE s.ID = 15)) AS
Standort 15“ funktioniert zB nicht dafür.
Ich hoffe das ist verständlich genug geschildert.
Mit freundlichen Grüßen,
Peter Pils
Hallo,
Hier findest du ein Beispiel, wie dies zu lösen wäre :
http://en.wikibooks.org/wiki/MySQL/Pivot_table
Gruss
             
            
              
              
              
            
            
           
          
            
            
              
Moin, Peter Pils,
Also: Brav programmieren lernen oder eine sequentielle Datei
erzeugen, die mit den üblichen Verdächtigen wie perl
malträtiert werden kann.
Gruß Ralf
Hi Ralf,
…oder Oracle verwenden 
11g: PIVOT in SQL verwenen
ab 9i :
SELECT deptno,
XMLTRANSFORM (
SYS_XMLAGG (SYS_XMLGEN (ename)),
xmltype(’<?xml version="1.0"?>;’)
).getstringval ()
listagg
FROM scott.emp
GROUP BY deptno
/
Gruss
             
            
              
              
              
            
            
           
          
            
            
              Da habe wir „parallel“ gedacht…Dies ist derselbe Link, den ich ihm in meiner obenstehenden Antwort gesendent habe 
Gruss