Heim > Datenbank > MySQL-Tutorial > Hauptteil

Verwenden Sie die JOIN-Funktion von MySQL, um Tabellen zu verknüpfen

WBOY
Freigeben: 2023-07-26 08:37:18
Original
1303 Leute haben es durchsucht

Verwenden Sie die JOIN-Funktion von MySQL, um Tabellen zu verknüpfen

In MySQL ist JOIN eine sehr häufige Operation, die es uns ermöglicht, zwei oder mehr Tabellen basierend auf den zugehörigen Feldern zwischen ihnen zu verknüpfen. Dies erleichtert das Abfragen und Abrufen relevanter Daten aus mehreren Tabellen und verbessert so die Abfrageeffizienz und -flexibilität. In diesem Artikel wird anhand von Codebeispielen gezeigt, wie die JOIN-Funktion von MySQL zum Verknüpfen von Tabellen verwendet wird.

Erstellen Sie zunächst zwei Beispieltabellen: students und scores. Die Tabelle students enthält grundlegende Informationen über Studenten, einschließlich Feldern wie id, name und age; Ergebnisse-Tabelle enthält Informationen zur Schülerleistung, einschließlich Feldern wie id, subject und score. Die beiden Tabellen sind über das Feld id des Schülers miteinander verbunden. 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);
Nach dem Login kopieren
  1. 内连接(INNER JOIN)

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

SELECT students.name, scores.subject, scores.score
FROM students
INNER JOIN scores ON students.id = scores.id;
Nach dem Login kopieren

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

  1. 左连接(LEFT JOIN)

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

SELECT students.name, scores.score
FROM students
LEFT JOIN scores ON students.id = scores.id;
Nach dem Login kopieren

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

  1. 右连接(RIGHT JOIN)

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

SELECT students.name, scores.subject, scores.score
FROM students
RIGHT JOIN scores ON students.id = scores.id;
Nach dem Login kopieren

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

  1. 全连接(FULL JOIN)

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

SELECT students.name, scores.subject, scores.score
FROM students
FULL JOIN scores ON students.id = scores.id;
Nach dem Login kopieren

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

  1. INNER JOIN
Inner Join ist die am häufigsten verwendete Verbindungsmethode. Sie gibt Datensätze in zwei Tabellen zurück, die die Join-Bedingungen erfüllen.

rrreee

Der obige Code gibt einen Ergebnissatz zurück, der die Namen, Fächer und Noten der Schüler enthält.

  1. LEFT JOIN
Left Join gibt alle Datensätze in der linken Tabelle und Datensätze in der rechten Tabelle zurück, die die Join-Bedingungen erfüllen Wenn die rechte Tabelle mit Datensätzen übereinstimmt, ist der Wert des relevanten Felds in der rechten Tabelle im Ergebnis NULL. 🎜rrreee🎜Der obige Code gibt einen Ergebnissatz zurück, der die Namen und Noten der Schüler enthält. Wenn ein Schüler keinen entsprechenden Punktedatensatz in der Tabelle scores hat, ist der Feldwert für die Punkte des Schülers NULL. 🎜
  1. RIGHT JOIN
🎜Right JOIN gibt alle Datensätze in der rechten Tabelle und Datensätze in der linken Tabelle zurück, die die Join-Bedingungen erfüllen Wenn die linke Tabelle mit Datensätzen übereinstimmt, ist der Wert des relevanten Felds in der linken Tabelle im Ergebnis NULL. 🎜rrreee🎜Der obige Code gibt einen Ergebnissatz zurück, der die Namen, Fächer und Noten der Schüler enthält. Wenn für ein Fach kein entsprechender Studentendatensatz in der Tabelle students vorhanden ist, ist der Fachfeldwert NULL. 🎜
  1. Vollständiger JOIN (FULL JOIN)
🎜Vollständiger Join gibt alle Datensätze in der linken und rechten Tabelle zurück. Wenn in einer Tabelle keine übereinstimmenden Datensätze vorhanden sind Der Wert des relevanten Feldes im Ergebnis ist NULL. 🎜rrreee🎜Der obige Code gibt einen Ergebnissatz zurück, der die Namen, Fächer und Noten der Schüler enthält. Wenn ein Student keinen entsprechenden Punktedatensatz in der Tabelle scores hat oder ein bestimmtes Fach keinen entsprechenden Studentendatensatz in der Tabelle students hat, dann der entsprechende Feldwert ist NULL. 🎜🎜Anhand der obigen Beispiele können wir sehen, dass die JOIN-Funktion von MySQL verwendet werden kann, um Tabellen flexibel zu verbinden und so relevante Daten bequem abzufragen und abzurufen. Diese Art von Operation kommt in tatsächlichen Datenbankanwendungen sehr häufig vor. Insbesondere bei komplexen Datenbeziehungen kann sie die Effizienz und Flexibilität von Abfragen erheblich verbessern. 🎜🎜Es ist zu beachten, dass der JOIN-Vorgang einen gewissen Einfluss auf die Datenbankleistung haben kann. Daher sollte bei Verwendung von JOIN eine Optimierung entsprechend der tatsächlichen Situation durchgeführt und die Zuordnung zwischen Tabellen so gut wie möglich gestaltet werden. 🎜

Das obige ist der detaillierte Inhalt vonVerwenden Sie die JOIN-Funktion von MySQL, um Tabellen zu verknüpfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!