MySQL のデフォルトの JOIN タイプは何ですか?また、LEFT JOIN との違いは何ですか?

Patricia Arquette
リリース: 2024-11-16 08:56:02
オリジナル
230 人が閲覧しました

What is the default JOIN type in MySQL and how does it differ from LEFT JOIN?

MySQL の JOIN と LEFT JOIN を理解する

MySQL の JOIN 操作を使用すると、テーブル間に共通のカラムを指定することで、複数のテーブルのデータを結合できます。ただし、さまざまな結合タイプ、特に INNER JOIN と LEFT JOIN の違いを理解することが重要です。

次のデータベース間クエリを考えてみましょう:

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50
ログイン後にコピー

クエリ実行エラーLEFT JOIN

すべての INNER JOIN を変換しようとした場合クエリ内で LEFT JOIN を使用すると、エラーが発生する可能性があります。これは、明示的な結合タイプが指定されていない場合、MySQL はデフォルトで INNER JOIN を使用するためです。 LEFT JOIN は、「LEFT JOIN」キーワードを使用して明示的に指定する必要があります。

デフォルトの結合タイプ

一般に信じられていることに反して、MySQL のデフォルトの結合タイプは LEFT JOIN ではありません。ただし、内部結合。内部結合は、クエリに含まれるすべてのテーブルの結合列に一致する値を持つ行のみを返します。

結合の視覚的表現

INNER の違いをよりよく理解するにはJOIN と LEFT JOIN については、次の図を考慮してください。表現:

  • 内部結合:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1
2       | C2       | D2

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
ログイン後にコピー
  • 左結合:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
| A2       | B2       | NULL     | NULL
ログイン後にコピー

ご覧のとおり、左JOIN には、左側のテーブル (テーブル 1) のすべての行が含まれ、一致するものがあれば、それらを右側のテーブル (テーブル 2) の行と照合します。一致するものがない場合は、欠落している列に NULL 値が含まれます。

以上がMySQL のデフォルトの JOIN タイプは何ですか?また、LEFT JOIN との違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート