ホームページ > データベース > mysql チュートリアル > MySQL の JOIN と LEFT JOIN の違いは何ですか?

MySQL の JOIN と LEFT JOIN の違いは何ですか?

Mary-Kate Olsen
リリース: 2024-11-25 16:13:11
オリジナル
775 人が閲覧しました

What is the difference between JOIN and LEFT JOIN in MySQL?

MySQL における JOIN と LEFT JOIN の違いを理解する

SQL では、テーブルを結合することで、特定のデータに基づいて複数のテーブルのデータを結合できます。基準。結合には JOIN と LEFT JOIN の 2 つの一般的なタイプがあります。

JOIN と LEFT JOIN

JOIN は結合条件に一致する行のみを返し、基本的にレコードのサブセットを作成します。指定された基準を満たすもの。一方、LEFT JOIN は、左側のテーブルからすべての行を取得し、右側のテーブルに一致する行のみを取得します。右側のテーブルに一致しない行は NULL 値で返されます。

MySQL のデフォルトの結合タイプ

ユーザーの想定に反して、MySQL のデフォルトの結合タイプは 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
ログイン後にコピー

デフォルトでは、このクエリは INNER JOIN を使用します。これは、4 つの結合テーブルすべてに対応するエントリを持つジョブのみを返します。 LEFT JOIN に変換するには、次のように 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`
        LEFT JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        LEFT JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        LEFT JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        LIMIT 50
ログイン後にコピー

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

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