どのような種類の 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ライフサイクルの詳細な説明

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

推薦する

CSS を使用してプログレスバーと順序プログレスバーを実装する例

この半月、期末試験の準備にかなりのエネルギーを費やしました。今日はしっかり復習するべきだったのですが...

Vue プロジェクトを実行するときに `--fix` オプションで修正できる可能性のある警告のエラー問題を解決します。

問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

docker run後、ステータスは常にExitedになります

追加するdocker run -it -name test -d nginx:latest /bin...

Vue コンポーネント ライブラリ ElementUI はテーブル読み込みツリー データのチュートリアルを実装します

ElementUIは、参考のためにテーブルツリーリストの読み込みチュートリアルを実装しています。具体...

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

Linux で開いているポートへのリモート アクセスを許可する方法

1. ファイアウォール設定ファイルを変更する # vi /etc/sysconfig/iptable...

HTML チュートリアル: よく使われる HTML タグのコレクション (5)

導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

Linux に MySql 5.7.21 をインストールするための詳細な手順

序文Linux で最も広く使用されているデータベースは MySQL です。この記事では、Linux ...

いくつかの面接の質問を使ってJavaScriptの実行メカニズムを調べる

目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...

Mysql の読み取り/書き込み分離期限切れに対する一般的な解決策

MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

初心者向けBootstrap 3.0学習ノート

この学習ノートの最初の記事として、シリーズの他の記事と同様に、Bootstrap の紹介から始め、そ...