Rumah >pangkalan data >tutorial mysql >Gunakan fungsi JOIN MySQL untuk menyertai jadual

Gunakan fungsi JOIN MySQL untuk menyertai jadual

WBOY
WBOYasal
2023-07-26 08:37:181367semak imbas

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: pelajar dan 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. studentsscoresstudents表包含学生的基本信息,包括idnameage等字段;scores表包含学生的成绩信息,包括idsubjectscore等字段。两个表之间通过学生的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);
  1. 内连接(INNER JOIN)

内连接是最常用的连接方式,它返回两个表中满足连接条件的记录。

SELECT students.name, scores.subject, scores.score
FROM students
INNER JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。

  1. 左连接(LEFT JOIN)

左连接返回左表中所有记录以及右表中满足连接条件的记录,如果右表中没有匹配的记录,那么结果中右表相关字段的值为NULL。

SELECT students.name, scores.score
FROM students
LEFT JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名和成绩。如果某个学生在scores表中没有对应的成绩记录,那么该学生的成绩字段值为NULL。

  1. 右连接(RIGHT JOIN)

右连接返回右表中所有记录以及左表中满足连接条件的记录,如果左表中没有匹配的记录,那么结果中左表相关字段的值为NULL。

SELECT students.name, scores.subject, scores.score
FROM students
RIGHT JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个科目在students表中没有对应的学生记录,那么该科目字段值为NULL。

  1. 全连接(FULL JOIN)

全连接返回左表和右表中所有记录,如果某个表中没有匹配的记录,那么结果中相关字段的值为NULL。

SELECT students.name, scores.subject, scores.score
FROM students
FULL JOIN scores ON students.id = scores.id;

以上代码会返回一个结果集,包含学生姓名、科目和成绩。如果某个学生在scores表中没有对应的成绩记录,或者某个科目在studentsrrreee

  1. INNER JOIN
Inner join ialah kaedah sambungan yang paling biasa digunakan. Ia mengembalikan rekod dalam dua jadual yang memenuhi syarat gabungan.

rrreee

Kod di atas akan mengembalikan set keputusan yang mengandungi nama pelajar, mata pelajaran dan gred.

  1. LEFT JOIN
Left join mengembalikan semua rekod dalam jadual kiri dan rekod dalam jadual kanan yang memenuhi syarat gabungan Jika tiada rekod dalam jadual yang betul Memadankan rekod, maka nilai medan yang berkaitan dalam jadual kanan dalam hasilnya ialah NULL. 🎜rrreee🎜Kod di atas akan mengembalikan set keputusan yang mengandungi nama dan gred pelajar. Jika pelajar tidak mempunyai rekod skor yang sepadan dalam jadual skor, nilai medan skor pelajar ialah NULL. 🎜
  1. RIGHT JOIN
🎜Right JOIN mengembalikan semua rekod dalam jadual kanan dan rekod dalam jadual kiri yang memenuhi syarat gabungan Jika tiada rekod dalam jadual kiri Memadankan rekod, maka nilai medan yang berkaitan dalam jadual kiri dalam hasilnya adalah NULL. 🎜rrreee🎜Kod di atas akan mengembalikan set keputusan yang mengandungi nama pelajar, mata pelajaran dan gred. Jika subjek tidak mempunyai rekod pelajar yang sepadan dalam jadual pelajar, nilai medan subjek ialah NULL. 🎜
  1. SERTAI Penuh (SERTAI PENUH)
🎜SERTAI penuh mengembalikan semua rekod dalam jadual kiri dan kanan Jika tiada rekod yang sepadan dalam jadual, maka Nilai medan yang berkaitan dalam hasilnya ialah NULL. 🎜rrreee🎜Kod di atas akan mengembalikan set keputusan yang mengandungi nama pelajar, mata pelajaran dan gred. Jika pelajar tidak mempunyai rekod skor yang sepadan dalam jadual 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!

Kenyataan:
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