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

Изравняване на дърво в MySQL?

Използвайки вашия пример, можете да отработите подмножеството от имена на родители в децата, ако имената на родителите се съдържат в имената на зависимите лица. Ако е така, помислете за заявка за съюз:

# GREAT-GRANDPARNTS
SELECT DISTINCT Null As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 1

UNION

# GRANDPARNTS
SELECT DISTINCT Left(Parent, 1) As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 3

UNION

# PARENTS
SELECT DISTINCT Left(Child, 1) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3

UNION

# CHILDREN
SELECT DISTINCT Left(Child, 3) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3;

Разбира се коригирайте Len() , Left() или Mid() низови функции и разширяване (т.е. внуци) според действителните модели на имената на предците. Това решение няма да работи, ако няма препратка към родители в стойностите на дъщерния низ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бройте от таблица, но спрете да броите на определено число

  2. MySQL LIMIT с параметри

  3. INSERT INTO...SELECT за всички MySQL колони

  4. Как мога да получа отместването на конкретен ред в MySQL?

  5. Импортиране на csv в mysql чрез команден ред