Rumah >pangkalan data >tutorial mysql >Gunakan fungsi JOIN MySQL untuk menyertai jadual
Gunakan fungsi JOIN MySQL untuk menyertai jadual
Dalam MySQL, JOIN ialah operasi yang sangat biasa, yang membolehkan kami menyertai dua atau lebih jadual berdasarkan medan yang berkaitan di antara mereka. Ini memudahkan untuk membuat pertanyaan dan mendapatkan data yang berkaitan daripada berbilang jadual, meningkatkan kecekapan dan fleksibiliti pertanyaan. Artikel ini akan menggunakan contoh kod untuk menunjukkan cara menggunakan fungsi JOIN MySQL untuk menyertai jadual.
Mula-mula buat dua contoh jadual: skor
. Jadual pelajar
mengandungi maklumat asas tentang pelajar, termasuk medan seperti id
, name
dan age
; markah mengandungi maklumat prestasi pelajar, termasuk medan seperti id
, subject
dan skor
. Kedua-dua jadual berkaitan melalui medan id
pelajar. students
和scores
。students
表包含学生的基本信息,包括id
、name
和age
等字段;scores
表包含学生的成绩信息,包括id
、subject
和score
等字段。两个表之间通过学生的id
字段关联。
-- 创建students表 CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); -- 插入示例数据 INSERT INTO students (id, name, age) VALUES (1, 'Alice', 18), (2, 'Bob', 20), (3, 'Charlie', 19); -- 创建scores表 CREATE TABLE scores ( id INT, subject VARCHAR(50), score INT ); -- 插入示例数据 INSERT INTO scores (id, subject, score) VALUES (1, 'Math', 90), (1, 'English', 85), (2, 'Math', 95), (2, 'English', 80), (3, 'Math', 85), (3, 'English', 90);
内连接是最常用的连接方式,它返回两个表中满足连接条件的记录。
SELECT students.name, scores.subject, scores.score FROM students INNER JOIN scores ON students.id = scores.id;
以上代码会返回一个结果集,包含学生姓名、科目和成绩。
左连接返回左表中所有记录以及右表中满足连接条件的记录,如果右表中没有匹配的记录,那么结果中右表相关字段的值为NULL。
SELECT students.name, scores.score FROM students LEFT JOIN scores ON students.id = scores.id;
以上代码会返回一个结果集,包含学生姓名和成绩。如果某个学生在scores
表中没有对应的成绩记录,那么该学生的成绩字段值为NULL。
右连接返回右表中所有记录以及左表中满足连接条件的记录,如果左表中没有匹配的记录,那么结果中左表相关字段的值为NULL。
SELECT students.name, scores.subject, scores.score FROM students RIGHT JOIN scores ON students.id = scores.id;
以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个科目在students
表中没有对应的学生记录,那么该科目字段值为NULL。
全连接返回左表和右表中所有记录,如果某个表中没有匹配的记录,那么结果中相关字段的值为NULL。
SELECT students.name, scores.subject, scores.score FROM students FULL JOIN scores ON students.id = scores.id;
以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个学生在scores
表中没有对应的成绩记录,或者某个科目在students
rrreee
rrreee
Kod di atas akan mengembalikan set keputusan yang mengandungi nama pelajar, mata pelajaran dan gred.skor
, nilai medan skor pelajar ialah NULL. 🎜pelajar
, nilai medan subjek ialah NULL. 🎜skor
, atau subjek tertentu tidak mempunyai rekod pelajar yang sepadan dalam jadual pelajar
, maka nilai medan yang sepadan adalah NULL. 🎜🎜Melalui contoh di atas, kita dapat melihat bahawa fungsi JOIN MySQL boleh digunakan untuk menggabungkan jadual secara fleksibel, dengan itu memudahkan pertanyaan dan mendapatkan data berkaitan. Operasi seperti ini sangat biasa dalam aplikasi pangkalan data sebenar, terutamanya apabila hubungan data adalah kompleks, ia boleh meningkatkan kecekapan dan fleksibiliti pertanyaan. 🎜🎜Perlu diingat bahawa operasi JOIN mungkin mempunyai kesan tertentu ke atas prestasi pangkalan data. Oleh itu, apabila menggunakan JOIN, pengoptimuman hendaklah dijalankan mengikut situasi sebenar, dan perkaitan antara jadual hendaklah direka bentuk sebaik mungkin. 🎜Atas ialah kandungan terperinci Gunakan fungsi JOIN MySQL untuk menyertai jadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!