接続クエリ: これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 つのテーブルの行と別のテーブルの行を接続した結果です。新しい行を取得するには、「水平ドッキング」を実行します。 接続クエリには、次のさまざまな形式と接続方法が含まれます。
結合クエリ構文:
テストデータ: mysql> テストから * を選択します。 +----+--------+------+------+ | ID | 名前 | 性別 | 年齢 | +----+--------+------+------+ | 1 | name1 | 女性 | 15 | | 2 | name1 | 女性 | 15 | | 4 | name2 | 男性 | 30 | | 5 | name50 | 男性 | 12 | +----+--------+------+------+ mysql> ユーザーから * を選択します。 +----+-------+------+ | ID | 名前 | 年齢 | +----+-------+------+ | 1 | 名前1 | 18 | | 2 | 名前2 | 15 | | 3 | 名前3 | 20 | | 4 | 名前4 | 30 | +----+-------+------+ クロス結合 1. クロス結合は、実際には結合クエリの「完全バージョン」と見なすことができます。つまり、すべての行が無条件に接続されます。 2. キーワード「cross」は省略できます。 3. クロス結合は「直積」とも呼ばれますが、通常は応用価値がほとんどありません。 構文:
標準クロスコネクション書き込み mysql> テストから * を選択して、クロス結合ユーザーを選択します。 +----+--------+------+------+-------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +----+--------+------+------+-------+------+------+ | 1 | name1 | 女性 | 15 | 1 | name1 | 18 | | 2 | name1 | 女性 | 15 | 1 | name1 | 18 | | 4 | name2 | 男性 | 30 | 1 | name1 | 18 | | 5 | name50 | 男性 | 12 | 1 | name1 | 18 | | 1 | name1 | 女性 | 15 | 2 | name2 | 15 | | 2 | name1 | 女性 | 15 | 2 | name2 | 15 | | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | | 5 | name50 | 男性 | 12 | 2 | name2 | 15 | | 1 | name1 | 女性 | 15 | 3 | name3 | 20 | | 2 | name1 | 女性 | 15 | 3 | name3 | 20 | | 4 | name2 | 男性 | 30 | 3 | name3 | 20 | | 5 | name50 | 男性 | 12 | 3 | name3 | 20 | | 1 | name1 | 女性 | 15 | 4 | name4 | 30 | | 2 | name1 | 女性 | 15 | 4 | name4 | 30 | | 4 | name2 | 男性 | 30 | 4 | name4 | 30 | | 5 | name50 | 男性 | 12 | 4 | name4 | 30 | +----+--------+------+------+-------+------+------+ 接続するには、直接 join を使用します。これは、cross join と同等です。デフォルトは cross join です。 mysql> テストから * を選択してユーザーに参加します。 クエリの結果は上記と一致しています!!! テーブルから直接テーブルに接続することもできます...クロス接続と同等です mysql> テスト、ユーザーから * を選択します。 クエリの結果は上記と一致しています!!! 内部結合 1. 内部結合は実際にはクロス結合に基づいており、一部のデータは条件によって除外されます。 2. キーワード「inner」は省略できますが、含めることをお勧めします。重要なのは、結合条件です。 3. 内部結合は最も広く使用されている結合クエリであり、その本質は条件に基づいて「意味のあるデータ」をフィルタリングすることです。 構文:
2つのテーブルで同じ名前のフィールドを持つデータを検索する mysql> test.name=user.name のテスト内部結合ユーザーから * を選択します。 +----+-------+------+------+-------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +----+-------+------+------+-------+------+------+ | 1 | name1 | 女性 | 15 | 1 | name1 | 18 | | 2 | name1 | 女性 | 15 | 1 | name1 | 18 | | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | +----+-------+------+------+-------+------+------+ 2つのテーブルで同じ名前のフィールドを持つデータを検索し、asを使用してテーブルに別の名前を付けます。 mysql> select * from test as t inner join user as u on t.name=u.name; クエリの結果は上記と一致しています!!! 2つのテーブルの名前フィールドが等しく、テストテーブルでは age>15、ユーザーテーブルでは age>10 であるデータを検索します。 テーブル内に重複フィールドがある場合は、[テーブル名.フィールド名] を使用する必要があります (例: age)。 mysql> select * from test inner join user on test.name=user.name where test.age>15 and user.age>10; +----+-------+------+------+-------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +----+-------+------+------+-------+------+------+ | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | +----+-------+------+------+-------+------+------+ 2 つのテーブルで、名前フィールドが等しく、性別が「男性」であるデータを見つけます。 テーブル内に重複するフィールドがない場合は、[テーブル名.フィールド名] を使用するか、[フィールド名] を直接使用できます (例: 性別)。 mysql> select * from test as t inner join user as u on t.name=u.name where t.sex='男'; mysql> select * from test as t inner join user as u on t.name=u.name where sex='男'; +----+-------+------+------+-------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +----+-------+------+------+-------+------+------+ | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | +----+-------+------+------+-------+------+------+ 外部結合 - 左外部結合 1. 左外部結合は、実際には左側のテーブル内のすべてのデータを取得できることを保証する結合の一種です。 2. 左外部結合は実際には内部結合に基づいており、条件を満たさない左のテーブルのすべてのデータが追加されます。 3. キーワード「outer」は省略できます。 構文:
左側の表を基準として、左側の表のすべてのデータが表示され、一致しないデータはNULLであることを確認します。 mysql> select * from test left join user on test.name=user.name; +----+--------+------+------+------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +----+--------+------+------+------+------+------+ | 1 | name1 | 女性 | 15 | 1 | name1 | 18 | | 2 | name1 | 女性 | 15 | 1 | name1 | 18 | | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | | 5 | name50 | 男性 | 12 | NULL | NULL | NULL | +----+--------+------+------+------+------+------+ 外部結合 - 右外部結合 1. 右外部結合は、実際には、右側のテーブル内のすべてのデータを取得できることを保証する結合の一種です。 2. 右外部結合は実際には内部結合に基づいており、条件を満たさない右テーブルのすべてのデータが加えられます。 3. キーワード「outer」は省略できます。 構文:
右側の表をベンチマークとして、右側の表のすべてのデータが表示され、一致しないデータはNULLであることを確認します。 mysql> test から * を選択し、test.name=user.name のユーザーを結合します。 +------+-------+------+------+------+------+------+ | ID | 名前 | 性別 | 年齢 | ID | 名前 | 年齢 | +------+-------+------+------+------+------+------+ | 1 | name1 | 女性 | 15 | 1 | name1 | 18 | | 2 | name1 | 女性 | 15 | 1 | name1 | 18 | | 4 | name2 | 男性 | 30 | 2 | name2 | 15 | | NULL | NULL | NULL | NULL | 3 | 名前3 | 20 | | NULL | NULL | NULL | NULL | 4 | name4 | 30 | +------+-------+------+------+-------+------+------+ 要約する これで、MySQL 結合クエリの構文と例に関するこの記事は終了です。MySQL 結合クエリの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析
HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...
目次整合性制約整合性制約の定義整合性制約の分類主キー制約単一の主キーと複合主キーの違い主キーフィール...
序文:パーティショニングはテーブル設計パターンです。一般的に、テーブル パーティショニングとは、条件...
初めてDockerを使用してイメージをローカルにパッケージ化してデプロイするまず、私のラップトップシ...
2005年に業界に入ってから数か月後、労働者の日休みの期間中、1か月以上毎日12時まで残業をしました...
Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリ、my-...
一つの環境Alibaba Cloud Server: CentOS 7.4 64 ビット (RedH...
@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...
序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...
言葉MySQL 8.0 は最初のバージョンから 4 年を経てリリースされました。バージョン 8.0 ...
Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...
Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...
目次.vue ファイルの解析文書情報を抽出するコンポーネント名、説明、プロパティ、メソッド、モデルを...
シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...
背景何が起こったかというと、Luzhu は偶然、宇宙で最高の外部スピーカーを備えた携帯電話について知...