目次
SQL テーブル接続
ホームページ データベース SQL SQL テーブル接続について話しましょう

SQL テーブル接続について話しましょう

Jun 15, 2022 am 11:55 AM
sql

この記事では、SQL に関する関連知識を提供します。主にテーブル接続に関する関連コンテンツを紹介します。SQL Server は、内部結合、左結合、右結合を含む複数の接続をサポートしています。結合、クロス結合、完全外部結合、一緒に見てみましょう。皆さんのお役に立てれば幸いです。

SQL テーブル接続について話しましょう

推奨学習: 「SQL チュートリアル

SQL テーブル接続

リレーショナル データベースでは、データが分散されます。複数の論理テーブルにわたって。完全で意味のあるデータ セットを取得するには、結合を使用してこれらのテーブル内のデータをクエリする必要があります。 SQL Server は、内部結合、左結合、右結合、クロス結合、完全外部結合などのさまざまな接続をサポートしています。

1. 内部結合

内部結合句は、2 つ以上の関連テーブルのデータをクエリするために使用されます。 INNER JOIN 句の構文:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id
ログイン後にコピー

注: クエリするフィールドの前には、次のようにテーブル名またはテーブル エイリアスを付ける必要があります。 p.product_name
FROM の後のテーブルがメイン テーブルです。の場合、INNER JOIN に続くテーブルが接続されるテーブルになります。メインテーブルと結合テーブルを比較して、条件を満たすすべての行を検索します。接続述語の計算結果が true の場合、次の図に示すように、メイン テーブルと接続テーブルが新しい結果セットにマージされます。以下に示すように、Connection 内で接続されたテーブル:

SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id 
INNER JOIN production.brands b ON b.brand_id = p.brand_id
ログイン後にコピー

SQL テーブル接続について話しましょう

2. 左側の接続

左側の接続で LEFT JOIN 句を使用してクエリを実行します。複数のテーブル データがある場合、左側のテーブルのすべての行と、右側のテーブルの一致する行が返されます。右のテーブルに一致する行が見つからない場合は、図に示すように、代わりに NULL を使用して表示します。

LEFT JOIN ステートメントを使用して接続します。以下に示します。

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
LEFT JOIN production.categories c ON c.category_id = p.category_id
ログイン後にコピー

上記の構文では、FROM に続くテーブルが左側のテーブル (production.products) であり、LEFT JOIN の直後にある右側のテーブル (production.categories) です。 SQL テーブル接続について話しましょう

3. 右結合

右結合で RIGHT JOIN 句を使用して、2 つ以上のテーブルをクエリします。右のクエリは、左のクエリの逆です。右のテーブルのすべての行と、左のテーブルの一致する行が返されます。左のテーブルに一致する行が見つからない場合は、次に示すように、表示ではなく NULL が返されます。図内:

以下に示すように、RIGHT JOIN ステートメントを使用して接続します:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
RIGHT JOIN production.categories c ON c.category_id = p.category_id
ログイン後にコピー

上記の構文では、FROM に続くテーブルが左側です。テーブル (production.products) とその直後のテーブル RIGHT JOIN 右のテーブル (production.categories) に従います。 SQL テーブル接続について話しましょう

4. クロス結合

CROSS JOIN は、2 つ以上の無関係なテーブルを結合します。 2 つのテーブル間の CROSS JOIN の構文は次のとおりです。書き方は

SELECT T1.select_list 
FROM T1 CROSS JOIN T2;
ログイン後にコピー
または

SELECT T1.select_list 
FROM T1, T2;
ログイン後にコピー
CROSS JOIN の 2 つがあります。最初のテーブル (T1) の各行を 2 番目のテーブルと結合します。 table(T2の各行)が連結されます。つまり、クロス結合は 2 つのテーブルの行のデカルト積を返します。 INNER JOIN や LEFT JOIN とは異なり、クロス結合は結合されたテーブル間の関係を確立しません。

T1 テーブルに 1 、 2 および 3 の 3 つの行が含まれ、T2 テーブルに A 、 B および C の 3 つの行が含まれているとします。 CROSS JOIN は、最初のテーブル (T1) から行を取得し、2 番目のテーブル (T2) の各行に新しい行を作成します。次に、最初のテーブル (T1) の次の行に対して同じことが行われ、以下同様に続きます。この図では、CROSS JOIN によって合計 9 行が作成されます。

5. 自己結合

自己結合は、テーブルをそれ自体 (同じテーブル) に接続するために使用されます。これは、階層データのクエリを実行したり、同じテーブル内の行を比較したりする場合に便利です。 自己結合は内部結合または左結合句を使用します。自己結合を使用するクエリは同じテーブルを参照するため、テーブル エイリアスを使用してクエリ内のテーブルに異なる名前を割り当てます。 注: テーブルの別名を使用せずにクエリ内で同じテーブルを複数回参照すると、エラーが発生します。 例:

SELECT t1.select_list 
FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id
ログイン後にコピー

ここで INNER JOIN で他の句 (LEFT JOIN、RIGHT JOIN


6 など) を使用できます。完全外部結合

FULL OUTER JOIN このコマンドは、左または右のテーブルに一致する行がある場合、すべての行を返します。図に示すように:

FULL OUTER JOIN を使用して、pm.projects テーブルと pm.member テーブルのデータをクエリします:

SELECT m.name member, p.title project 
FROM pm.members m 
FULL OUTER JOIN pm.projects p ON p.id = m.project_id;
ログイン後にコピー

pm。プロジェクト テーブル データ: SQL テーブル接続について話しましょう

pm.member テーブル データ:

SQL テーブル接続について話しましょう

クエリ結果:
SQL テーブル接続について話しましょう

推奨される学習: 「SQL チュートリアル

以上がSQL テーブル接続について話しましょうの詳細内容です。詳細については、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)

Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Hibernate フレームワークにおける HQL と SQL の違いは何ですか? Apr 17, 2024 pm 02:57 PM

HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

Oracle SQLでの除算演算の使用法 Oracle SQLでの除算演算の使用法 Mar 10, 2024 pm 03:06 PM

「OracleSQLでの除算演算の使用方法」 OracleSQLでは、除算演算は一般的な数学演算の1つです。データのクエリと処理中に、除算演算はフィールド間の比率を計算したり、特定の値間の論理関係を導出したりするのに役立ちます。この記事では、OracleSQL での除算演算の使用法を紹介し、具体的なコード例を示します。 1. OracleSQL における除算演算の 2 つの方法 OracleSQL では、除算演算を 2 つの異なる方法で実行できます。

Oracle と DB2 の SQL 構文の比較と相違点 Oracle と DB2 の SQL 構文の比較と相違点 Mar 11, 2024 pm 12:09 PM

Oracle と DB2 は一般的に使用される 2 つのリレーショナル データベース管理システムであり、それぞれに独自の SQL 構文と特性があります。この記事では、Oracle と DB2 の SQL 構文を比較し、相違点を示し、具体的なコード例を示します。データベース接続 Oracle では、次のステートメントを使用してデータベースに接続します: CONNECTusername/password@database DB2 では、データベースに接続するステートメントは次のとおりです: CONNECTTOdataba

MyBatis動的SQLタグのSetタグ機能の詳細説明 MyBatis動的SQLタグのSetタグ機能の詳細説明 Feb 26, 2024 pm 07:48 PM

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

SQL の ID 属性は何を意味しますか? SQL の ID 属性は何を意味しますか? Feb 19, 2024 am 11:24 AM

SQL における Identity とは何ですか? 具体的なコード例が必要です。SQL では、Identity は自動インクリメント数値の生成に使用される特別なデータ型です。多くの場合、テーブル内のデータの各行を一意に識別するために使用されます。 Identity 列は、各レコードが一意の識別子を持つようにするために、主キー列と組み合わせてよく使用されます。この記事では、Identity の使用方法といくつかの実用的なコード例について詳しく説明します。 Identity の基本的な使用方法は、テーブルを作成するときに Identity を使用することです。

SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 Jun 02, 2023 am 11:07 AM

Springboot+Mybatis-plus が SQL ステートメントを使用して複数テーブルの追加操作を実行しない場合、私が遭遇した問題は、テスト環境で思考をシミュレートすることによって分解されます: パラメーターを含む BrandDTO オブジェクトを作成し、パラメーターをバックグラウンドに渡すことをシミュレートします。 Mybatis-plus で複数テーブルの操作を実行するのは非常に難しいことを理解してください。Mybatis-plus-join などのツールを使用しない場合は、対応する Mapper.xml ファイルを設定し、臭くて長い ResultMap を設定するだけです。対応する SQL ステートメントを記述します。この方法は面倒に見えますが、柔軟性が高く、次のことが可能です。

SQL の 5120 エラーを解決する方法 SQL の 5120 エラーを解決する方法 Mar 06, 2024 pm 04:33 PM

解決策: 1. ログインしているユーザーがデータベースにアクセスまたは操作するための十分な権限を持っているかどうかを確認し、ユーザーが正しい権限を持っているかどうかを確認します; 2. SQL Server サービスのアカウントに指定されたファイルまたはデータベースにアクセスする権限があるかどうかを確認します。 3. 指定されたデータベース ファイルが他のプロセスによって開かれているかロックされているかどうかを確認し、ファイルを閉じるか解放して、クエリを再実行します。管理者として試してください。Management Studio をなどとして実行します。

MySQL でデータの集計と統計に SQL ステートメントを使用するにはどうすればよいですか? MySQL でデータの集計と統計に SQL ステートメントを使用するにはどうすればよいですか? Dec 17, 2023 am 08:41 AM

MySQL でデータの集計と統計に SQL ステートメントを使用するにはどうすればよいですか?データの集計と統計は、データ分析と統計を実行する際の非常に重要な手順です。 MySQL は強力なリレーショナル データベース管理システムとして、データの集約と統計操作を簡単に実行できる豊富な集約機能と統計機能を提供します。この記事では、SQL ステートメントを使用して MySQL でデータの集計と統計を実行する方法を紹介し、具体的なコード例を示します。 1. カウントには COUNT 関数を使用します。COUNT 関数は最も一般的に使用されます。

See all articles