mySQL: Mencipta Jadual Baharu daripada Data dan Lajur Tiga Jadual
Soalan:
Bagaimana saya boleh membuat jadual baharu yang menggabungkan data terpilih daripada tiga jadual sedia ada, termasuk medan last_name, nama_pertama, e-mel dan umur daripada jadual orang, butiran dan taksonomi?
Jawapan:
Untuk mencapai matlamat ini, anda boleh menggunakan SERTAI 3 hala.
Mencipta Jadual Baharu dengan Menyertai:
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';
Pertanyaan ini akan membuat jadual baharu bernama new_table yang merangkumi lajur_last_name, first_name, e-mel dan umur. Dalam jadual butiran, medan kandungan digunakan untuk menyimpan maklumat umur.
Memasukkan Data ke dalam Jadual Sedia Ada:
Jika anda telah mencipta jadual_baru, anda boleh memasukkan data ke dalamnya menggunakan pertanyaan berikut:
INSERT INTO new_table (id, last_name, first_name, email, age) SELECT p.id, p.last_name, p.first_name, p.email, 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';
Menyertai untuk Berbilang Atribut:
Untuk mendapatkan semula berbilang atribut (cth., umur, jantina, ketinggian) daripada jadual lain, anda perlu melakukan gabungan tambahan:
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 AND d1.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'age') JOIN details AS d2 ON d2.person_id = p.id AND d2.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'gender') JOIN details AS d3 ON d3.person_id = p.id AND d3.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'height');
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Data daripada Tiga Jadual MySQL ke dalam Jadual Baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!