MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレクションの構造は、フィールド数とフィールドタイプが一致していなければなりません。 2. UNION ALL キーワードを使用して 2 つのセットを結合します。結果は重複するすべてのセットになります。 3. 上記のすべてのセットをIDでグループ化する 4. 最後に、HAVING COUNT(id)=1 です。これが 1 に等しい場合、それは 1 回だけ出現することを意味するため、これは差異集合です。これが 2 に等しい場合、これは交差集合です。 コードデモンストレーション違い次の SQL には明らかな問題がありますが、これは単なるヒントです。 テーブルからクエリを実行するために、交差と差を使用する必要はありません。条件を組み合わせて直接クエリを実行できます。意味を理解しておくと良いでしょう。 次のSQLは、すべての非技術系従業員のID、コード、名前を検索することを意味します。 a.* から(を選択します test_emp から id、コード、名前を選択します。 ユニオンオール test_emp から id、コード、名前を選択します。dept='JSB' を指定します。 )a GROUP BY a.id HAVING COUNT(a.id)=1 交差点次のSQLは、技術部門の25歳以上の従業員全員を検索することを意味します。 a.* から(を選択します test_emp から id、code、name を選択、年齢>25 の場合 ユニオンオール test_emp から id、コード、名前を選択します。dept='JSB' を指定します。 )a GROUP BY a.id HAVING COUNT(a.id)=2 連合次のSQLは、技術部門の従業員全員と30歳以上の従業員を検索することを意味します。 Unionは重複コンテンツを自動的に削除し、重複のない結果セットを取得できます。 a.* から(を選択します test_emp から id、code、name を選択、年齢>25 の場合 連合 test_emp から id、コード、名前を選択します。dept='JSB' を指定します。 ) MySQL での交差、結合、差、左結合、右結合私は1か月間MySQLを学習してきました。この1か月間、必要に応じてデータテーブルに対していくつかの基本的な操作を実行しました。このプロセスでは、左結合、右結合、交差、差集合などを頻繁に使用しました。ここで、その基本的な操作をまとめます。 データソース: 表1:
表2:
左結合:等価条件に基づいてテーブルを結合します。この実験は、IDが同じ場合に左結合を実行することです コード: a.*、b.schoolを選択 から (SELECT * FROM mike1.test001) から 左結合 (mike1.test003 から id、school を選択) b オン a.id=b.id 結果は次のようになります。表1を基礎として表2を接続し、同じID番号を一致させます。 右結合:テーブル 2 をルートとして、同じ ID を持つフィールドを介して右結合します。 コード: a.*、b.schoolを選択 から (SELECT * FROM mike1.test001) から 右のJOIN (mike1.test003 から id、school を選択) b オン a.id=b.id 結果: 結果に問題があると思いますか? 交差点:同じ ID 番号を使用して、テーブル 1 とテーブル 2 に対して内部結合が実行され、同じ部分が取得され、異なる部分が省略されます。 コード: a.*、b.schoolを選択 から (SELECT * FROM mike1.test001) から 内部結合 (mike1.test003 から id、school を選択) b オン a.id=b.id 結果: 違い:差集合は頻繁に使われますが、これは数学で学んだ積集合、結合集合、和集合などの集合演算に似ています。 コード 1: 表 2 の表 1 と同じ部分を取得します。これは、上記の交差を取得する 2 番目の方法です。 a.id、a.name、a.sex、a.age、b.school を選択してください から (SELECT * FROM mike1.test001) から 左外部結合 (mike1.test003 から id、school を選択) b オン a.id=b.id b.id が null ではない場合 結果: code2: テーブル 1 の ID とテーブル 2 の ID の差を取得し、最後にデータをリストします。 a.id、a.name、a.sex、a.age、b.school を選択してください から (SELECT * FROM mike1.test001) から 左外部結合 (mike1.test003 から id、school を選択) b オン a.id=b.id b.id が null の場合 結果: 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Gogs+Jenkins+Docker による .NetCore ステップの自動デプロイ
目次序文実装のアイデア実装コード成果を達成する序文これは、テーブルを動的に追加する例です。[追加] ...
実際のWeb開発では、画像の挿入やCSSファイルなどすべてパスが必要となります。ファイルパスを誤って...
この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...
1. my.cnfを変更する #全体的な効果としては、グローバルがオンになっている場合はテーブルとロ...
1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...
Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...
目次1. 準備2. 説明計画の概要3. フィールドの詳細な説明4. パーティションクエリにはパーティ...
非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...
今日は、ext3 や他の以前のファイル システムとの違いを含め、ext4 の歴史について説明します。...
1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...
この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...
みなさんこんにちは。私と同じように混乱している方はいらっしゃいませんか。CSS は簡単に始められます...
Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...
チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...
1. 単一テーブルクエリ -> 更新 テーブル名の更新 フィールド1=新しい値1、フィールド2...