Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil Data Senarai Terpaut daripada Pangkalan Data MySQL dalam Susunan yang Betul?
Mengambil Senarai Terpaut daripada Pangkalan Data MySQL
Mengambil data daripada struktur senarai terpaut yang disimpan dalam pangkalan data MySQL dalam susunan yang betul boleh mencabar, kerana MySQL tidak menyokong pertanyaan rekursif.
Penyelesaian 1: Nested Joins
Walaupun MySQL tidak menyediakan sokongan pertanyaan rekursif asli, anda boleh mencapai kesan yang sama dengan menggunakan nested menyertai. Dengan menyertai berbilang kejadian jadual yang sama, anda boleh melintasi senarai terpaut mengikut urutan. Pertanyaan berikut menggambarkan pendekatan ini, tetapi perlu diperhatikan bahawa ia boleh menjadi tidak cekap untuk senarai terpaut yang besar kerana struktur bersarangnya:
<code class="sql">SELECT * FROM mytable t1 LEFT JOIN mytable t2 ON (t1.next_id = t2.id) LEFT JOIN mytable t3 ON (t2.next_id = t3.id) LEFT JOIN mytable t4 ON (t3.next_id = t4.id) LEFT JOIN mytable t5 ON (t4.next_id = t5.id) LEFT JOIN mytable t6 ON (t5.next_id = t6.id) LEFT JOIN mytable t7 ON (t6.next_id = t7.id) LEFT JOIN mytable t8 ON (t7.next_id = t8.id) LEFT JOIN mytable t9 ON (t8.next_id = t9.id) LEFT JOIN mytable t10 ON (t9.next_id = t10.id);</code>
Penyelesaian 2: Penghuraian Luar
Penyelesaian lain adalah untuk mendapatkan semula data dalam cara yang tidak tersusun menggunakan pertanyaan SELECT standard dan kemudian menghuraikan struktur senarai terpaut pada bahagian klien. Pendekatan ini lebih cekap untuk struktur data seperti pepohon yang kompleks.
Penyelesaian Perisian Luaran
Sesetengah jenama pangkalan data, seperti Oracle dan Microsoft SQL Server, menawarkan SQL tambahan sintaks untuk pertanyaan rekursif. Walau bagaimanapun, ciri ini tidak disokong oleh MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Data Senarai Terpaut daripada Pangkalan Data MySQL dalam Susunan yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!