内部結合と左結合および右結合の違い
内部結合と左結合の違い
内部結合と左結合
の違いについては、以前は理解できたと思いましたが、今日フロントエンドからパラメータを取得したところ、期待した結果ではないことがわかり、問題は内部にあることに気づきました。参加します。
データベースのデータを確認し、フロントエンドに棒グラフで表示する必要があります。見つかったデータは業界ごとにグループ化されており、各業界の世帯数と世帯の割合が示されています。関連分野は次のとおりです。表Aのユーザー数、ユーザーの総数、およびBテーブルの業界名。もともと、データが見つかったかどうかに関係なく、X軸に業界名を表示する必要があるため、X軸とY軸にデータが表示されません。問題は、間違った接続方法を使用したことです。
1. SQLの左結合、右結合、内部結合の違い
左結合(左結合)は、左テーブルの
すべてのレコードと右テーブルの同じ結合フィールドを持つレコードを含みます右結合(右結合)は、右テーブルのすべてのレコードと同じ結合フィールドを持つレコードを含みます。左側のテーブルの内部結合(値の連結など)2つのテーブルで等しい結合フィールドを持つ行のみを返します
例は次のとおりです。--------------------------------------------
表A记录如下: aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
1.左結合sql语句如下:A.aID = B.bIDの左結合Bから*を選択
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(影響を受ける行数は5行です)結果の説明:左結合はテーブルAのレコードに基づいており、Aは左テーブルと見なすことができ、Bは右テーブルと見なすことができ、左
結合は左側のテーブル。変更言い換えると、左側のテーブル(A)のすべてのレコードが表示され、右側のテーブル(B)には、検索条件を満たすレコードのみが表示されます(例:A.aID =
B。 bID)。Bテーブルにレコードがありません。両方ともNULLです。
2.right joinsql语句如下:A.aID = B.bIDのAright joinBから*を選択します。
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(影響を受ける行数は5行です)結果の説明:よく見ると、左
結合の結果とは正反対であることがわかります。今回は、右の表(B)に基づいており、テーブルの欠如はNULLで埋められます
。--------------------------------------------
3.内部結合SQLステートメントは次のとおりです。select* from A innerjoin B on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
結果の説明:明らかに、ここにはA.aID = B.bIDのレコードのみが表示されます。これは、内部結合がwhoに基づくのではなく、条件を満たすレコードのみを表示することを示しています。