Hallo Leute!
Nach längerem Suchen muss ich annehmen, dass der Bergiff "zweidimensionale Abfrage" nicht dem entspricht, was ich suche. Daher bitte ich euch mir bei meinem Problem zu helfen:
Was ich haben will ist eine Tabellen-Darstellung wo die horizontale und die vertikale Seite jeweis in Verbindung zueinander stehen. Also A1 zu A2 = 1, A1 zu A4 = 2 usw. Das sollte so aussehen:
| |A1|A2|A3|A4|
|A1| 0| 1| 0| 2|
|A2| 1| 0| 2| 0|
|A3| 0| 2| 0| 1|
|A4| 2| 0| 1| 0|
Jetzt habe ich dafür eine Tabelle (Tab) mit den An-Elementen und eine Beziehungstabelle Tab_mm:
Tab:
id
int(4) unsigned NOT NULL auto_increment,
name
char(32) collate utf8_bin NOT NULL default '',
Tab_mm:
tab1\_id1
int(4) unsigned NOT NULL default '0',
tab1\_id2
int(4) unsigned NOT NULL default '0',
status
tinyint(1) unsigned NOT NULL default '0',
Es wird nur dann ein Datensatz in Tab_mm angelegt, wenn der Status != 0 ist.
Wie kann ich nun eine mySQL-Abfrage machen, die mir die Ausgabe gleich mit allen benötigten Daten ausgibt? Mit z.B. ...
SELECT Tab.id AS id1, Tab.name,
Tab_mm.tab1_id2 AS id2, Tab_mm.status
FROM Tab
JOIN Tab_mm
ORDER BY name
... kommt dem zwar schon nahe, ist aber noch nicht ganz das was ich will.
Wüschenswert wäre eine Ausgabe, die ALLE Datensätze, auch die ohne mm-Datensatz, ausgibt. Wie etwa:
name|id1|id2|status
A1 | 1| 1|NULL
A1 | 1| 2| 1
A1 | 1| 3|NULL
A1 | 1| 4| 2
A2 | 2| 1| 1
A2 | 2| 2|NULL
A2 | 2| 3|NULL
A2 | 2| 4|NULL
A3 | 3| 1|NULL
A3 | 3| 2|NULL
A3 | 3| 3|NULL
A3 | 3| 4|NULL
A4 | 4| 1| 2
A4 | 4| 2|NULL
A4 | 4| 3|NULL
A4 | 4| 4|NULL
Geht das irgendwie ohne PHP-Schleife?
Bin für jede Hilfe dankbar!
lg lixx