lixx: mySQL: zweidimensionale Abfrage

Beitrag lesen

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