データベースの左結合と右結合の違いは何ですか?

清浅
リリース: 2020-09-08 10:55:25
オリジナル
65934 人が閲覧しました

データベースにおける左結合と右結合の違いは、一文に要約できます。左結合は右側のテーブルにのみ影響し、右結合は左側のテーブルにのみ影響します

データベースの左結合と右結合の違いは何ですか?

[推奨コース: MySQL チュートリアル ]

データベースの左結合と右結合の違い

左結合

select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID
ログイン後にコピー

左結合後の検索結果は、where 条件を満たす tbl1 のデータと tbl2 のデータをすべて表示します。
つまり、Left Join は右側のテーブルに影響を与えます

Right Join

select * from tbl1 Right Join tbl2 where tbl1.ID = tbl2.ID
ログイン後にコピー

検索結果は tbl2 のすべてのデータと、 where 条件を満たす tbl1 内。
つまり、右結合は左側のテーブルに影響を与えます。

内部結合 (内部結合)

select * FROM tbl1 INNER JOIN tbl2 ON tbl1.ID = tbl2.ID
ログイン後にコピー

その機能は select * from tbl1,tbl2 と同じです。 tbl1.id=tbl2.id は同じです。

その他の内容:

1. WHERE 句で使用される接続ステートメントは、データベース言語では暗黙的な接続と呼ばれます。 INNER JOIN... ON 句によって生成される結合は、明示的結合と呼ばれます。 (他の JOIN パラメータも明示的な接続です) WHERE と INNER JOIN の接続関係に本質的な違いはなく、結果は同じです。しかし、データベース言語の標準化と発展に伴い、暗黙的な接続は徐々に排除され、新しいデータベース言語は基本的に暗黙的な接続を放棄し、すべて明示的な接続を採用しています。

2. どの接続方法でもjoin句を使用できますが、同じテーブルを接続する場合はエイリアスを定義しないとエラーが発生しますので注意してください

(1) inner結合: " 「有効な接続」として理解され、両方のテーブルのデータのみが表示されます。 左結合: 「左表示あり」として理解されます。たとえば、a.field=b.field では、テーブル a とテーブルに存在するすべてのデータが表示されます。 a\\b 内のすべてのデータが表示されます。一部のデータでは、A に存在し、B に存在しないデータは null として表示されます。

(2) 右結合: 「右側に表示される」と理解されます。たとえば、a.field=b.field では、テーブル B のデータが表示されます。すべての既存のデータと a\\b のデータ、A ではなく B のデータは null
## として表示されます。 # (3) 完全結合: 「完全結合」として理解され、2 つのテーブル内のすべてのデータが表示されます。実際には内部 (左内部) (右内部) です。

3. 結合は次のように分割できます。プライマリ テーブルとセカンダリ テーブル 外部結合には、完全外部結合、左結合、右結合の 3 種類があります。完全な外部結合には、2 つのテーブルのすべてのレコードが含まれます。左の結合は左のテーブルに基づいており、右の結合は補足的です。右の結合はその逆です。

4. 一般に、データベース クエリ ステートメントのパフォーマンスを向上させるには、次の原則に従ってください。 :

テーブル間の接続クエリを実行するときは、大きなテーブルが最初に、小さなテーブルが最初に来ます。

テーブル エイリアスは使用せず、異なるテーブルのフィールドを区別するためのフィールド接頭辞

クエリ条件の制限はテーブル接続条件の前に記述する必要があります


##インデックス付きフィールドをクエリ条件として使用してみてください

以上がデータベースの左結合と右結合の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート