Coucou à tous,
Je suis en train de me battre avec du SQL dit "avancé"... Alors je sais pas si ce que je cherche à faire est avancé ou pas, mais ce qui est sur, c'est que j'y arrive pas.
Les requêtes se passent dans une table "rubrique"
disons donc que la table est composée de deux colonnes : id et parent
Une rubrique qui a pour parent RIEN (NULL) est dites "de niveau 1"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 +------+----------+ +--id--+--parent--+ +------+----------+
Une rubrique qui a un parent qui lui même n'a pas de parent est dites de "niveau 2"
Une rubrique qui a un a un GRAND PARENT qui n'a pas de parent est dites de "niveau 3" (une rubrique qui a un parent, qui a un parent qui n'a pas de parent)
voici ce que cela pourrait donner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 +------+----------+ +--id--+--parent--+ +------+----------+ +--1---+---NULL---+ +--2---+---NULL---+ +--3---+---NULL---+ +--4---+-----1----+ +--5---+-----2----+ +--6---+-----5----+ +------+----------+
Donc si on fait une arborescence de ça... ca donnerait
Ma question donc est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 1 |-----4 2 |-----5 ------|------6 3
"Comment récupérer toutes les rubriques de niveau 2 (ici 4 et 5) en une seule requête?"
La seconde question est
"Comment récupérer toutes les rubriques de niveau 3 (ici 6) en une seule requête?"
Il ne peut pas y avoir de 4e niveau (parce que je l'ai décidé )
Voilà ce que j'ai essayé pour les rubriques de niveau 2... mais j'ai eu une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT parent FROM Rubrique WHERE parent IS NOT NULL AND parent IN (SELECT * FROM Rubrique WHERE Rub_Rubrique_Id IS NULL)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2MySQL a répondu:Documentation #1241 - Operand should contain 1 column(s)
Partager