lixx: mySQL: zweidimensionale Abfrage

Beitrag lesen

Hallo Norbert!

Also für diese Antwort gebührt Dir einmal ein extra Dankeschön!

Das mit der Matrix ist natürlich ganz gefinkelt. Aber noch einmal eine extra Tabelle anlegen ... ich weiß nicht. Ich hoffe dass die Variante, die ich mittlerweile herausgefunden habe auch funktioniert:

SELECT Tab.id AS Tab_id1, Tab.name, Tab_mm.Tab_id2, Tab_mm.status
FROM Tab
LEFT JOIN Tab_mm
 ON ( Tab_mm.Tab_id1 = Tab.id )
RIGHT JOIN Tab as Tab2
 ON ( Tab2.id = Tab_mm.Tab_id2 )
ORDER BY Tab.name, Tab2.id

Ist zwar etwas flapsig aber im ersten Test bekomme ich auf jedenfall die Daten so wie ich sie gerne hätte:

name|id1|id2|status
 A1 |  1|  1|NULL     (A1 => A1)
 A1 |  1|  2| 1       (A1 => A2)
 A1 |  1|  3|NULL     (A1 => A3)
 A1 |  1|  4| 2       (A1 => A4)
 A2 |  2|  1| 1       (A2 => A1)
 A2 |  2|  2|NULL     (A2 => A2)
 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

lg lixx