Bonjour,
Je n'arrive pas à comprendre la logique de MySQL dans une requête avec une auto jointure sur
une table utilisant la représentation intervallaire .
Mon exemple provient d'une requête Joomla
SELECT a.id, a.lft, a.rgt FROM jos_categories AS a LEFT JOIN jos_categories AS b ON a.lft > b.lft AND a.rgt < b.rgt WHERE a.extension="com_content" GROUP BY a.id ORDER BY a.left ASC
Ce que je n'arrive pas à comprendre c'est comment fonctionne l'auto jointure.
Dans mon idée (sûrement fausse), si on fait une jointure sur une même table on récupère les même valeurs (?
) ce qui voudrait dire que, dans l'exemple, a.categories et b.categories sont identiques.
Et si je continue mon raisonnement je ne comprend donc pas comment a.lft peut-il être plus grand que lui-même (b.lft), ou comment a.rgt peut il être plus petit que lui même.
Je me doute qu'il y a une astuce mais je n'arrive pas à me représenter comment MySQL évalue cette jointure.
Quelqu'un pourrait-il m'éclairer ?
Merci
Partager