ホームページ  >  記事  >  データベース  >  MySQL の JOIN 関数を使用してテーブルを結合する

MySQL の JOIN 関数を使用してテーブルを結合する

WBOY
WBOYオリジナル
2023-07-26 08:37:181335ブラウズ

MySQL の JOIN 関数を使用してテーブルを結合する

MySQL では、JOIN は非常に一般的な操作であり、テーブル間に関連付けられたフィールドに基づいて 2 つ以上のテーブルを結合できます。これにより、クエリを実行して複数のテーブルから関連データを取得することが容易になり、クエリの効率と柔軟性が向上します。この記事では、コード例を使用して、MySQL の JOIN 関数を使用してテーブルを結合する方法を示します。

最初に、studentsscores という 2 つのサンプル テーブルを作成します。 students テーブルには、idnameagescores# などのフィールドを含む、学生に関する基本情報が含まれています。 ## テーブルには、idsubjectscore などのフィールドを含む生徒の成績情報が含まれています。 2 つのテーブルは、生徒の 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);

    INNER JOIN
内部結合は最も一般的に使用される接続方法で、結合条件を満たす 2 つのテーブルのレコードを返します。

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

上記のコードは、学生の名前、科目、成績を含む結果セットを返します。

    LEFT JOIN
左結合は、右側に一致するレコードがない場合、左側のテーブルのすべてのレコードと、接続条件を満たす右側のテーブルのレコードを返します。 table の場合、結果の右側のテーブルの関連フィールドの値は NULL になります。

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

上記のコードは、学生の名前と成績を含む結果セットを返します。学生の

scores テーブルに対応するスコア レコードがない場合、学生のスコア フィールドの値は NULL になります。

    RIGHT JOIN
右結合は、左側に一致するレコードがない場合、右側のテーブル内のすべてのレコードと、結合条件を満たす左側のテーブル内のレコードを返します。 table の場合、結果の左側のテーブルの関連フィールドの値は NULL になります。

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

上記のコードは、学生の名前、科目、成績を含む結果セットを返します。教科の

students テーブルに対応する学生レコードがない場合、教科のフィールド値は NULL になります。

    完全結合 (FULL JOIN)
完全結合では、左側のテーブルと右側のテーブルのすべてのレコードが返されます。テーブル内に一致するレコードがない場合は、結果が返されます。フィールドの値は NULL です。

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

上記のコードは、学生の名前、科目、成績を含む結果セットを返します。学生の

scores テーブルに対応するスコア レコードがない場合、または特定の科目の students テーブルに対応する学生レコードがない場合、対応するフィールド値は NULL になります。 。

上記の例を通して、MySQL の JOIN 関数を使用してテーブルを柔軟に接続できるため、クエリを実行して関連データを簡単に取得できることがわかります。この種の操作は実際のデータベース アプリケーションでは非常に一般的で、特にデータ関係が複雑な場合、クエリの効率と柔軟性が大幅に向上します。

JOIN 操作はデータベースのパフォーマンスに一定の影響を与える可能性があることに注意してください。したがって、JOINを使用する場合は、実情に応じて最適化を行い、テーブル間の関連性を可能な限り設計する必要があります。

以上がMySQL の JOIN 関数を使用してテーブルを結合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。