Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Query Hirarki di MySQL. (terhubung dengan setara untuk MySQL)

Tidak ada dukungan kueri hierarkis asli di MySQL.

Untuk jumlah level yang harus dilalui, kita dapat menulis kueri yang mendapatkan hasil untuk setiap level, dan menggabungkan hasilnya dengan UNION ALL operator.

Atau, kita dapat menulis program (prosedur) tersimpan MySQL untuk pendekatan yang lebih rekursif.

Sebagai contoh pendekatan menggunakan kueri SQL asli:

 SELECT t0.comp_code
   FROM tb_corp t0
  WHERE t0.mgr_emp_no = 111

 UNION ALL

SELECT t1.comp_code
  FROM tb_corp t0
  JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
 WHERE t0.mgr_emp_no = 111

 UNION ALL

SELECT t2.comp_code
  FROM tb_corp t0
  JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
  JOIN tb_corp t2 ON t2.incharge_comp_code = t1.comp_code
 WHERE t0.mgr_emp_no = 111

 UNION ALL

SELECT t3.comp_code
  FROM tb_corp t0
  JOIN tb_corp t1 ON t1.incharge_comp_code = t0.comp_code
  JOIN tb_corp t2 ON t2.incharge_comp_code = t1.comp_code
  JOIN tb_corp t3 ON t3.incharge_comp_code = t2.comp_code
 WHERE t0.mgr_emp_no = 111

dll. Pendekatan ini dapat diperluas ke t4, t5, t6, ... hingga beberapa level (yang masuk akal).

Untuk pendekatan yang lebih rekursif, program tersimpan MySQL (PROCEDURE) dapat ditulis.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan menyimpan gambar dalam database (mySQL) dan kapan tidak? (Menghubungkan gambar ke item dalam database)

  2. Dapatkan Hasil Prosedur Tersimpan Laravel

  3. Menggunakan variabel sebagai OFFSET dalam pernyataan SELECT di dalam fungsi tersimpan mysql

  4. Pilih MySQL untuk pembaruan - itu tidak mengunci baris target. Bagaimana cara memastikannya?

  5. Bagaimana cara menambahkan baris baru ke jTable dari database sambil mengklik tombol tanpa menghapus baris yang ada