接続クエリ: これは、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 チュートリアル分析
1. MYSQLインデックスインデックス: MySQL がデータを効率的に取得するのに役立つデータ構...
リスト形式のテキストの展開と折りたたみの実装は参考までに。具体的な内容は以下のとおりです。必要: 1...
目次アイデア傍受を要求するレスポンスインターセプションhttpClient.tsを使用してリクエスト...
CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...
フォーラムで、ネットユーザーの jeanjean20 が、Marquee を標準に適合させる方法につ...
1. 環境整備CentOS Linux リリース 7.5.1804 (コア)インストールフォルダを作...
コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...
この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...
目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...
目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....
目次原因:以下を実行します: 1. コンストラクター2.レンダリング機能3.bind関数とarrow...
1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...
目次はじめにNginx Dockerファイル新しい会議もっと参考文献はじめに最近、アプリケーションの...
このアイデアを改善し、より良い意見を得られることを期待して、議論を刺激するためにいくつかの値を大まか...
目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...