Numar de Join-uri in functie de conditie
Scris: Mar Iul 09, 2019
Salutare,
Am urmatorul tabel mysql:
Incerc sa gasesc o modalitate de a se face automat join-urile in functie de conditia din WHERE.
In cazul de fata daca NIVEL = 4, se fac doua join-uri, daca NIVEL = 5 se fac trei join-uri la acelasi tabel.
Vreau sa aflu ID_PARINTE de nivel 2 pentru clasele care sunt de nivel mai mare de 2.
Sql-ul este rulat in PHP
Multumesc!
Am urmatorul tabel mysql:
Cod: Selectaţi tot
tblA
+----+--------+-------+------------+
| ID | CLASA | NIVEL | ID_PARINTE |
+----+--------+-------+------------+
| 1 | clasa1 | 1 | 1 |
| 2 | clasa2 | 2 | 1 |
| 3 | clasa3 | 3 | 2 |
| 4 | clasa4 | 4 | 3 |
+----+--------+-------+------------+
SELECT
tblA4.CLASA,
tblA4.NIVEL,
tblA2.ID AS ID_LVL_2
FROM tblA as tblA4
LEFT JOIN tblA as tblA3 ON tblA3.ID = tblA4.ID_PARINTE
LEFT JOIN tblA as tblA2 ON tblA2.ID = tblA3.ID_PARINTE
WHERE tblA4.NIVEL = 4
return
+--------+-------+----------+
| CLASA | NIVEL | ID_LVL_2 |
+--------+-------+----------+
| clasa4 | 4 | 2 |
+--------+-------+----------+
In cazul de fata daca NIVEL = 4, se fac doua join-uri, daca NIVEL = 5 se fac trei join-uri la acelasi tabel.
Vreau sa aflu ID_PARINTE de nivel 2 pentru clasele care sunt de nivel mai mare de 2.
Sql-ul este rulat in PHP
Multumesc!