Requête SQL récursive parent-enfant dans MySQL / MariaDB

J’ai appris le SQL en 1988, au cours de ma formation Administrateur de Bases de Données au GRETA Elbeuf Vallée de Seine. Je me souviens encore de la galère, lorsqu’il m’a fallu à écrire ma 1ère requête imbriquée. Ce n’était rien à côté de l’écriture de la requête ci-dessous dont l’objet est d’afficher dans la même colonne le chemin complet de l’adresse des pages d’un site WordPress. L’exemple ci-dessous est une requête récursive, s’appuyant sur les CTE Common Table Expressions. L’intérêt est d’avoir évité le recours à une procédure stockée, extrêmement fastidieuse à écrire.

Les valeurs « parentes »

Dans l’exemple ci-dessous, la 1ère requête contient la liste des pages parentes.

Les valeurs "parentes" de la requête récursive

La requête récursive 

La 2e requête, après l’opérateur ensembliste UNION, opère la jointure entre les résultats de la requête définie dans le WITH avec la liste des valeurs des pages enfantes.

WITH RECURSIVE urls AS
(
 SELECT
  parent.ID AS id, 
  parent.post_parent AS parent,
  parent.post_name AS url,
  parent.post_type,parent.post_status AS status
 FROM
  wp_posts as parent
 WHERE 
  parent.post_parent=0
 AND
  parent.post_type='page'
 AND
  parent.post_status='publish' 
UNION 
 SELECT
  enfant.ID AS id,
  enfant.post_parent AS parent,
  CONCAT(urls.url,'/',enfant.post_name) AS url,
  enfant.post_type AS type,
  enfant.post_status AS status
 FROM
  urls INNER JOIN wp_posts AS enfant ON enfant.post_parent=urls.id
 WHERE
  enfant.post_type='page'
 AND
  enfant.post_status='publish'
)
SELECT
 CONCAT('https://www.dsfc.net/',url,'/') AS url
FROM 
 urls
ORDER BY
 url; 

Le résultat est à la hauteur de mes espérances. Je m’en suis servi pour construire mon fichier  urllist.txt.

La requête récursive

Base de données / , , , , ,

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos