Mysql
 sql >> база данни >  >> RDS >> Mysql

Връзка родител - дете в рамките на една таблица

Тъй като имате ограничени 4 нива, не трябва да се нуждаете от рекурсия (въпреки че би било удобно да можете да използвате например MS SQL CTE).

Нещо като:

SELECT
  t4.uid as child, 
  --t3.uid as parent,
  --t2.uid as grand_parent,
  --t1.uid as great_grand_parent,
  t1.parentid as great_great_grand_parent
FROM
  your_table_name t1

  inner join your_table_name t2
  on t2.parentid = t1.uid

  inner join your_table_name t3
  on t3.parentid = t2.uid

  inner join your_table_name t4
  on t4.parentid = t3.uin

where 
  t4.uid = '10007' -- your start node.

Ако трябва да направите това за множество възли, ще трябва да присъедините това към нещо, което избира вашите начални възли, или например да замените горния WHERE t4.uid = '10007' клауза да бъде WHERE t4.uid IN (SELECT DISTINCT uid FROM your_table_name)

Това е направено на ръка, така че се извинявам за правописните грешки.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се свържа с Amazon RDS чрез SSL?

  2. Как да върнете списък с наличните набори от символи в MySQL

  3. Функция на прозореца в MySQL заявки

  4. Преместена XAMPP папка на нов компютър, сега получава (XAMPPERrorDomain грешка 1.) при опит за стартиране на MySQL

  5. Конфигурирайте пул за връзки на GlassFish JDBC, за да управлявате превключване на Amazon RDS Multi-AZ