Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spłaszczyć drzewo w MySQL?

Korzystając ze swojego przykładu, możesz wypracować podzbiór imion rodziców u dzieci, jeśli imiona rodziców będą zawarte w imionach osób na utrzymaniu. Jeśli tak, rozważ zapytanie składające:

# 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;

Oczywiście dostosuj Len() , Left() lub Mid() funkcje ciągów i rozszerzenia (tj. wnuki) zgodnie z rzeczywistym wzorcem nazw przodków. To rozwiązanie nie zadziała, jeśli nie ma odniesienia do rodziców w podrzędnych wartościach ciągu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapisywanie znaków specjalnych w bazie danych MySQL

  2. Zaktualizuj wiązkę w Codeigniter z wieloma klauzulami WHERE

  3. Indeks (bazujący na zero) musi być większy lub równy zero

  4. HQL z testem Null dla relacji jeden do jednego

  5. Usuwanie zduplikowanych podciągów