Może na początek podam tabele:
podzespoly
+--------------+-------------+------+-----+---------+----------------+ +--------------+-------------+------+-----+---------+----------------+ | idPodzespolu | int(11) | NO | PRI | NULL | auto_increment | | numerseryjny | int(11) | YES | | NULL | | | nazwa | varchar(50) | YES | | NULL | | | modelauta | int(11) | YES | MUL | NULL | | | kategorie | int(11) | YES | MUL | NULL | | | jednostka | int(11) | YES | MUL | NULL | | | cena | int(11) | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+
kategorie
+----------------+-------------+------+-----+---------+-------+ +----------------+-------------+------+-----+---------+-------+ | idnadkategorii | int(5) | YES | | NULL | | | nazwakategorii | varchar(50) | YES | | NULL | | | idKategorii | int(3) | NO | PRI | 0 | | +----------------+-------------+------+-----+---------+-------+
modeleaut
+-------------+-------------+------+-----+---------+----------------+ +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nazwaModelu | varchar(50) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+
A o to zapytanie:
SELECT * /*numerseryjny, nazwa*/ FROM podzespoly LEFT JOIN modeleaut ON podzespoly.modelauta = modeleaut.id LEFT JOIN kategorie AS k1 ON podzespoly.kategorie = k1.idKategorii LEFT JOIN kategorie AS k2 ON k1.idnadkategorii = k2.idKategorii
Tabelę kategorie chce połączyć z samą sobą tak, abym dostał kolumnę z nazwą nadkategorii, bo pierwsz 18 rekordów to kategorie główne z id=0, a później będę mógł sobie zagnieżdżać w ten sposób.
Problem w tym, że mysql nie dołącza ostatniej tabeli, czyli zachowuje się tak jakby tego ostatniego JOINa tam nie było.
Proszę o pomoc