Menggabungkan Data daripada Berbilang Jadual menjadi Jadual Baharu dengan MySQL
Apabila bekerja dengan pangkalan data hubungan, selalunya anda perlu menggabungkan data daripada berbilang jadual ke dalam jadual baru. Soalan ini menunjukkan cara untuk mencapai ini menggunakan JOIN 3 hala dalam MySQL.
Objektif: Cipta jadual baharu yang merangkumi data dan lajur khusus daripada tiga jadual sedia ada (orang, taksonomi dan butiran).
Sedia ada Jadual:
people id last_name first_name email 1 Smith Fred Fred@.. 2 Jones Tom Tom@.. 3 Doe Jane Jane@.. taxonomy id taxonomy 1 age 2 gender 3 height details id person_id detail_id content 1 1 1 36 2 1 2 M 3 1 3 5'10" 4 2 1 29 5 2 2 M 6 2 3 6'3" 7 3 1 27 8 3 2 F 9 3 3 5'8"
Keputusan yang Diingini (Jadual Baharu):
id last_name first_name email age 1 Smith Fred Fred@.. 36 2 Jones Tom Tom@.. 29 3 Doe Jane Jane@.. 27
Penyelesaian menggunakan 3-Way JOIN:
Untuk mencipta jadual baharu, kita perlu melakukan JOIN 3 hala untuk menyambungkan tiga jadual sedia ada berdasarkan nilai sepunya:
CREATE TABLE new_table AS SELECT p.*, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
SERTAI ini menggabungkan data daripada jadual orang dengan jadual butiran berdasarkan lajur person_id, dan kemudian menyertai jadual butiran dengan jadual taksonomi berdasarkan lajur detail_id, menapis hanya untuk baris yang taksonominya ialah 'umur'.
Pendekatan Ganti (untuk Berbilang Atribut):
Untuk memasukkan berbilang atribut (seperti umur, jantina dan ketinggian) daripada jadual butiran, anda perlu melakukan JOIN berasingan untuk setiap atribut:
CREATE TABLE new_table AS SELECT p.*, d1.content AS age, d2.content AS gender, d3.content AS height FROM people AS p JOIN details AS d1 ON d1.person_id = p.id JOIN taxonomy AS t1 ON t1.id = d1.detail_id JOIN details AS d2 ON d2.person_id = p.id JOIN taxonomy AS t2 ON t2.id = d2.detail_id JOIN details AS d3 ON d3.person_id = p.id JOIN taxonomy AS t3 ON t3.id = d3.detail_id WHERE t1.taxonomy = 'age' AND t2.taxonomy = 'gender' AND t3.taxonomy = 'height';
Pendekatan ini membolehkan anda menggabungkan data daripada berbilang lajur dalam jadual butiran ke dalam jadual baharu.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Data daripada Tiga Jadual MySQL ke dalam Jadual Baharu Menggunakan JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!