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

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

推薦する

Nginx プロキシ転送構成を通じてクロスドメイン API プロキシ転送を実装する方法

序文WEB 開発では、クロスドメイン リクエストが頻繁に発生します。クロスドメインの問題を解決する方...

el-table ヘッダーでテキストを折り返す 3 つの方法の詳細な説明

目次問題の説明レンダリング3種類のコード要約する問題の説明通常、表のヘッダーは折り返されませんが、ビ...

フレックスレイアウトによるシームレスなスクロールのサンプルコード

この記事では、シームレスなスクロールを実現するためのフレックスレイアウトのサンプルコードを主に紹介し...

MySQLリモート接続失敗の解決策

以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

略語マークと頭字語マーク

<abbr>タグと<acronym>タグは、Web ページに表示される略語と...

VMware Workstation 仮想マシンのインストール操作方法

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

JS はデータ URL をどのように理解するのでしょうか?

目次概要データ URL の使用を開始するデータURL構文複数言語の文字列のBase64エンコードとデ...

iframeフレームはIEブラウザで白い背景を透明に設定します

最近、プロジェクトを進める過程で、ページの階層構造を描画するために iframe を頻繁に使用する必...

MySQL バックアップ スクリプトの書き方

序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...

iframe を更新する 3 つの方法

コードをコピーコードは次のとおりです。 <iframe src="1.htm&quo...

Vue のフィルターの適用シナリオの詳細な説明

filterは通常、特定の値をフィルターするために使用されます。たとえば、フィールドが空だが、フロン...

Linuxのシグナルメカニズムについての簡単な説明

目次1. シグナルリスト1.1. リアルタイム信号と非リアルタイム信号1.2 信号ステータス1.3 ...

JS でシングルトン モードを実装するための 6 つのソリューションの概要

序文今日は、デザインパターンのクリエーションパターンを見直していたところ、JS でシングルトンパター...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...