Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Data daripada Tiga Jadual MySQL ke dalam Jadual Baharu Menggunakan JOIN?

Bagaimana untuk Menggabungkan Data daripada Tiga Jadual MySQL ke dalam Jadual Baharu Menggunakan JOIN?

Linda Hamilton
Lepaskan: 2024-12-05 21:32:11
asal
486 orang telah melayarinya

How to Combine Data from Three MySQL Tables into a New Table Using JOINs?

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"
Salin selepas log masuk

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
Salin selepas log masuk

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';
Salin selepas log masuk

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';
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan