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

Lấy tất cả các hàng cha trong một truy vấn SQL

Phỏng theo tại đây :

SELECT T2.id, T2.name
FROM (
    SELECT
        @r AS _id,
        (SELECT @r := parent_id FROM table1 WHERE id = _id) AS parent_id,
        @l := @l + 1 AS lvl
    FROM
        (SELECT @r := 5, @l := 0) vars,
        table1 h
    WHERE @r <> 0) T1
JOIN table1 T2
ON T1._id = T2.id
ORDER BY T1.lvl DESC

Dòng @r := 5 là số trang của trang hiện tại. Kết quả như sau:

1, 'Home'
2, 'About'
4, 'Legal'
5, 'Privacy'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về DATEDIFF () - MySQL

  2. Làm thế nào để đảo ngược thứ tự của các ký tự trong một chuỗi trong MySQL

  3. Cách thiết lập MySQL Replication trong RHEL, Rocky và AlmaLinux

  4. CHÈN VÀO ... CHỌN TỪ ... TRÊN CẬP NHẬT KHÓA DUPLICATE

  5. Tạo một loạt các số trong MySQL