ホームページ データベース mysql チュートリアル mysql の高度な結合 - 自然結合、外部結合の使用例

mysql の高度な結合 - 自然結合、外部結合の使用例

May 11, 2017 am 10:52 AM

自然結合

テーブルが結合されるときは常に、複数のテーブルに少なくとも 1 つの列 (結合される列) が存在する必要があります。標準結合 (前の章で紹介した内部結合) は、同じ列が複数回出現する場合でも、すべてのデータを返します。自然結合では複数の出現が除外されるため、各列は 1 回だけ返されます。

この作業を完了するにはどうすればよいですか?答えは、システムが仕事をするのではなく、自分でやるということです。自然結合は、それらの一意の列のみを選択できる結合です。これは通常、1 つのテーブルにはワイルドカード ( SELECT * ) を使用し、他のすべてのテーブルの列には明示的なサブセットを使用して行われます。以下に例を示します:

入力:

select  c.*,o.order_num,o.order_date,oi.prod_id,oi.quantity,oi.item_price from customers as c,orders as o,orderitems as oi where c.cust_id = o,cust_id and oi.order_num = o.order_num and prod_id = 'FB';
ログイン後にコピー

分析: この例では、ワイルドカードは最初のテーブルにのみ使用されます。他のすべての列は明示的にリストされるため、重複する列は取得されません。

実際、これまでに作成した内部接続はすべて自然な接続であり、自然な接続ではない内部接続を使用することはおそらくないでしょう。


外部結合

多くの結合は、あるテーブルの行を別のテーブルの行に関連付けます。ただし、関連する行を持たない行を含める必要がある場合があります。たとえば、次のタスクを実行するには結合を使用する必要がある場合があります:

1. これまで注文していない顧客を含む、各顧客が注文した数をカウントします。

2. すべての製品と注文数量をリストします。注文した商品は含まれません

3. これまで注文していない顧客も含めて、平均売上規模を計算します。

上記の例では、結合には関連テーブル内に関連行を持たない行が含まれています。このタイプの結合は外部結合と呼ばれます。

次の SELECT ステートメントは、単純な内部結合を提供します。すべての顧客とその注文を取得します。

入力:

select customers.cust_id,orders.order_num from customers inner join orders on customers.cust_id = orders.cust_id;
ログイン後にコピー

出力:

mysql の高度な結合 - 自然結合、外部結合の使用例

分析: 前の章で見た内部結合と同様に、この SELECT ステートメントはキーワードを使用します。 OUTER JOIN を使用して、(WHERE 句で指定するのではなく) 結合のタイプを指定します。ただし、2 つのテーブルの行を関連付ける内部結合とは異なり、外部結合には関連する行を持たない行も含まれます。 OUTER JOIN 構文を使用する場合は、RIGHT または LEFT キーワードを使用して、そのすべての行を含むテーブルを指定する必要があります (RIGHT は OUTER JOIN の右側のテーブルを指し、LEFT は OUTER JOIN の左側のテーブルを指します)外部結合)。上記の例では、LEFT OUTER JOIN を使用して、FROM 句の左側のテーブル (customers テーブル) からすべての行を選択します。右側のテーブルからすべての行を選択するには、次の例に示すように RIGHT OUTER JOIN を使用する必要があります:

入力:

select customers.cust_id,orders.order_num from customers right outer join orders on orders.cust_id = customers.cust_id;
ログイン後にコピー

No *= 演算子: MySQL は簡略文字 *= と の使用をサポートしていません。 =*, this どちらの演算子も他の DBMS でよく使用されます。

外部結合の種類: 外部結合には、左外部結合と右外部結合という 2 つの基本形式があります。それらの唯一の違いは、関連付けられたテーブルの順序です。つまり、FROM 句または WHERE 句内のテーブルの順序を逆にすることで、左外部結合を右外部結合に変換できます。したがって、どちらのタイプの外部結合も互換的に使用でき、どちらを使用するかは単に便宜上の問題です。


以上がmysql の高度な結合 - 自然結合、外部結合の使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Centosはmysqlをインストールします Centosはmysqlをインストールします Apr 14, 2025 pm 08:09 PM

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

See all articles