Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mối quan hệ cha - con trong một bảng

Vì bạn có 4 cấp độ hữu hạn, bạn không cần đệ quy (mặc dù sẽ rất tiện lợi nếu có thể sử dụng như MS SQL CTE).

Một cái gì đó như:

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.

Nếu bạn cần thực hiện việc này cho nhiều nút, bạn cần kết hợp nó với một cái gì đó chọn các nút bắt đầu của bạn, hoặc ví dụ:thay thế WHERE t4.uid = '10007' ở trên mệnh đề là WHERE t4.uid IN (SELECT DISTINCT uid FROM your_table_name)

Điều này đã được thực hiện tự do, vì vậy xin lỗi vì lỗi chính tả.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ColdFusion tham số hóa một truy vấn

  2. Cách sử dụng các giá trị trả về của một tác vụ trong một tác vụ khác cho một máy chủ lưu trữ khác trong ansible

  3. Lỗi MySQL:Sử dụng không chính xác UPDATE và LIMIT

  4. Tăng hiệu suất truy vấn MySQL - Truy vấn nặng về toán học

  5. Hiệu suất tìm kiếm qua 100 triệu bản ghi