どのような種類の MYSQL 接続クエリを知っていますか?

どのような種類の MYSQL 接続クエリを知っていますか?

序文

クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があります。結合は、異なるテーブルのレコードを接続する最も一般的な方法です。結合クエリを使用すると、複数のテーブルを 1 つのテーブルとして処理できます。結合クエリは、内部結合と外部結合に分けられます。

1. クロスコネクト

クロス結合は、「カルテシアン結合」または「クロス積」とも呼ばれ、すべてのタイプの内部結合の基礎となります。

例: ルート テーブルと車両テーブルを実装するには、次のステートメントを使用します。

`select * from line CROSS JOIN automobileはselect * from line, automobileと同等です。

2番目は、内部結合

内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォルトの結合タイプです。

構文は次のとおりです。

SELECT フィールドリスト FROM テーブル1 【INNER】JOIN テーブル2 ON 
table1.column1=table2.column2 【where条件】

3. 自然なつながり

自然結合は、接続された 2 つのテーブルの基本列が同じフィールド (同じフィールド名と同じフィールド属性を持つ) である必要がある特殊な内部結合です。
構文は次のとおりです。

select fieldlist FROM table1 NATURAL JOIN table2 【where条件】

4. 複数テーブル結合クエリ

クエリする情報が複数のテーブルから取得される場合、2 つのテーブルを逆の順序で接続することにより、複数テーブル結合クエリを確立できます。

3 つのテーブルを結合するクエリの構文は次のとおりです。

SELECT フィールドリスト FROM テーブル1 JOIN テーブル2 ON 
tabke1.column1=table.column2_1 テーブル3を結合
 table2.column2_2=table.column3【where条件】

FROM 句で接続するすべてのテーブルを直接リストし、WHERE 句で接続条件を指定すると、これは単純なマルチテーブルクエリとなり、内部結合と同じ機能を持ちます。

2 つのテーブルを結合するためのクエリ構文は次のとおりです。

テーブル1、テーブル2からフィールドリストを選択
HERE table1.column1=table2.column2 [およびその他の条件]

5、外側の接続

内部結合クエリでは、結合条件を満たすレコードのみがクエリ結果に表示されます。ただし、実際の使用では、接続条件を満たさないレコードもクエリ結果に表示される場合は、外部結合クエリが必要になります。外部結合は、左外部結合と右外部結合に分けられます。

構文は次のとおりです。

`SELECT フィールド名 FROM テーブル名 1 LEFT|RIGHT|FULL [OUTER] JOIN テーブル名 2 ON テーブル名 1. フィールド名 1 = テーブル名 2. フィールド名 2`

1. 左外部結合

外部結合の結果セットには、左側のテーブルのすべてのレコードと、結合条件を満たす右側のテーブルのレコードが含まれます。結果セット内の結合条件を満たさないテーブルの列値は null になります。

2. 右外部結合

右外部結合は左外部結合の逆です。右外部結合の結果セットには、右テーブルのすべてのレコードと、結合条件を満たす左テーブルのレコードが含まれます。結合条件を満たさない左テーブルの列値は null になります。

手術:

すべての非エアコン車両のナンバープレート番号、モデル、運転手名、所属する路線の路線番号、出発駅、終着駅の情報を取得します。

選択
	v.plateNO ナンバープレート番号、
	v.モデルモデル、
	d. NAME ドライバーの名前、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	ライン l、
	車両v、
	ドライバ
どこ
	v.type = 'エアコンなし車'
かつ、l.lineID = v.lineID
かつ、d.driverID = v.driverID;

バス会社2のすべての運転手情報を取得します。運転手の名前、身分証明書、性別、電話番号の出力が必要です。

選択
	NAME ドライバーの名前、
	免許証IDカードなし、
	d.性別、
	電話番号
	車両v、
	ドライバーd、
	行 l
どこ
	v.ドライバーID = d.ドライバーID
かつ、v.lineID = l.lineID
AND 会社 = 'バス会社 2'
グループ化 

すべての非エアコン車両のナンバープレート番号、モデル、路線番号、出発駅および終着駅を確認します。

選択
v.plateNO ナンバープレート番号、
	v.モデルモデル、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	ライン l、
	車両v
どこ
	v.type = 'エアコンなし車'
かつ、l.lineID = v.lineID;

すべての路線と割り当てられた車両の基本情報を表示し、車両に割り当てられた運転手の関連情報を照会します。運転手の名前、性別、電話番号、ナンバープレート番号、モデル、路線番号、出発駅、終点駅の出力が必要です。

	選択
	d.NAME ドライバーの名前、
	免許証IDカードなし、
	d.性別、
	電話、
	v.plateNO ナンバープレート番号、
	v.モデルモデル、
	l.line行番号なし、
	l.from_station 出発駅、
	l.end_station ターミナル駅 FROM
	車両v、
	ドライバーd、
	行 l
どこ
	v.ドライバーID = d.ドライバーID
かつ、v.lineID = l.lineID
GROUP BY ドライバー名;

6. 注文ID4の注文詳細を取得し、商品名、単価、数量を出力します。

選択
	c.cName 顧客名、
	o.ordersDate 注文日、
	g.goodsName 商品名、
	g.unitPrice 単価、
	od.quantity 個数 から
	注文詳細 od、
	商品 g、
	注文o、
	顧客c
どこ
	c.cName = '王川花'
かつ c.customerID = o.customerID
かつ o.ordersID = od.ordersID
かつ、od.goodsID = g.goodsID;

顧客「Wang Chuanhua」の注文詳細を取得し、顧客名、注文 ID、注文日、製品名、単価、個数を表示する必要があります。

選択
	c.cName 顧客名、
	o.ordersDate 注文日、
	g.goodsName 商品名、
	g.unitPrice 単価、
	od.quantity 個数 から
	注文詳細 od、
	商品 g、
	注文o、
	顧客c
どこ
	c.cName = '王川花'
かつ c.customerID = o.customerID
かつ o.ordersID = od.ordersID
かつ、od.goodsID = g.goodsID;

左の接続を使用して、すべての顧客の基本情報と注文情報を取得します。顧客名、電話番号、注文 ID、注文時間を出力する必要があります。

選択
	c.cName 顧客名、
	c.電話、
	o.ordersID 注文ID、
	o.ordersDate 注文時間 開始
	 顧客c
LEFT JOIN は c.customerID=o.customerID に対して o を注文します。

8. 右側のリンクを使用して、すべての顧客の基本情報と注文情報を取得します。顧客名、電話番号、注文 ID、注文時間を出力する必要があります。

選択
	c.cName 顧客名、
	c.電話、
	o.ordersID 注文ID、
	o.ordersDate 注文時間 開始
	注文
顧客 c を c.customerID=o.customerID で右結合します。

要約する

MYSQL 接続クエリに関するこの記事はこれで終わりです。MYSQL 接続クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL の結合クエリとサブクエリの問題
  • MySQL マルチテーブル結合クエリの詳細な説明
  • MySQL接続クエリの原理と応用
  • MySQL 結合クエリ構文と例
  • MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明
  • Mysql 自己結合クエリ例の詳細な説明
  • MySQL マルチテーブル結合クエリ例の説明
  • MySQL接続クエリの詳細な説明

<<:  Vueライフサイクルの詳細な説明

>>:  チェックボックスの不確定プロパティの使用の紹介

推薦する

react+antd.3x は IP 入力ボックスを実装します

この記事では、IP入力ボックスを実装するための react+antd.3x の具体的なコードを参考ま...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

HTML+CSS をベースにした素敵なフリップログインおよび登録インターフェースを作成します

素敵なフリップログインと登録インターフェースを作成する序文最近、ネットワーク ディスクを構築しようと...

Linux ドライバ開発でよく使われる関数 copy_from_user open read write の詳細な説明

目次Linux ドライバーの共通機能 (copy_from_user open read write...

Win10 MySQLでCSVをエクスポートする2つの方法

Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...

特定のシンボルで複数の行と列に分割するMySQLの例

一部の障害コード テーブルでは、履歴またはパフォーマンス上の理由から、次の設計パターンが使用されます...

MySQL トランザクション同時実行問題の解決

開発中にこのような問題に遭遇しましたビデオ視聴記録が 100 に更新されると、視聴されたことを意味し...

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

Linux で起動時にプログラムを自動的に実行させる最も簡単な方法

たくさん集めましたが、すべて失敗に終わりました。最終的に、この方法は優れており、使用に影響を与えない...

Ubuntu システムに Theano と Keras をインストールする方法

注: システムは Ubuntu 14.04LTS、32 ビット オペレーティング システムです。Py...

CSS ポインターイベント属性の使用に関する詳細な説明

フロントエンド開発では、ユーザーと直接やり取りするため、ユーザーが操作がスムーズで快適だと感じ、ネイ...

MySQL で結果を選択して更新を実行する例のチュートリアル

1. 単一テーブルクエリ -> 更新 テーブル名の更新 フィールド1=新しい値1、フィールド2...

ノードを使用して静的ファイルキャッシュを実装する方法

目次キャッシュキャッシュ位置の分類キャッシュ設定ヘッダーNodeは静的ファイルキャッシュを実装する強...

JavaScriptはeコマースプラットフォームの製品詳細を実装します

この記事では、電子商取引プラットフォームで商品の詳細を表示する一般的な例を紹介します。たとえば、ある...

MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

環境: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_...