よく使われるmysqlの基本操作構文(8)~~複数テーブルクエリのマージ結果と内部結合クエリ【コマンドラインモード】

黄舟
リリース: 2017-03-03 14:17:28
オリジナル
1562 人が閲覧しました

1. Union と Union All を使用して、2 つのクエリ結果をマージします。 select field name from tablename1 Union select field name from tablename2; この操作では、2 つのテーブルのフィールドが同じであることを確認する必要があります。フィールドのデータ型も同じです。さらに、union を使用すると、重複した (同一の) レコードが削除されますが、union all では削除されません。

注: 次の結合クエリにはデカルト積の概念が含まれています。つまり、2 つのテーブルがあり、最初のテーブルに n 個のレコードがあり、もう一方のテーブルに m 個のレコードがある場合、デカルト積は次のようになります。出力されるレコードの数は n です。 *m; 最初のテーブルのフィールドの数が a で、もう一方のテーブルのフィールドの数が b の場合、デカルト積によって取得されるフィールドの数は a+b です。
2. 自然結合を使用する: 前提条件は、2 つのテーブルに同じフィールドがあることです: (この操作により重複フィールドが削除されます)

このクエリについて、私の理解は次のとおりです: これら 2 つのテーブルに関連付けられたフィールドを保持します。 (たとえば、ここではDepartment_id)、1つのテーブルにのみ存在するデータを削除します:


上記の内容に示すように、会社には4つのデータがあり、従業員には7つのデータがあります。どれが最初に配置されても、エントリは 6 つだけです。 company のpart_id は 4 (emp には見つかりません)、emp のpart_id は 5 (company には見つかりません) であるためです。

3. 等価結合クエリの内部結合:

私の理解では、この操作と上記の自然結合の違いは、重複フィールドが削除されず、より柔軟であり、必要がないことです。同じフィールド名です。 フィールド:


4. 不等結合クエリの内部結合:


このクエリについては、これは "= クエリの補完であると理解しています。このクエリの結果 Set = デカルト積の結果セットから「=」クエリの結果セットを差し引いたもの。この例では、company には 4 つのレコードがあり、emp には 7 つのレコードがあり、デカルト積は 4*7=28 レコードになります。結果は 6 レコードになり、残りの 22 レコードは「!=」クエリになります。

5. 別の種類のクエリを上記の操作から拡張できます。つまり、実際には 1 つのテーブルしかなく、名前を変更することで 2 つのテーブルとして使用できます。 、デカルト積によると、ここには 4*4=16 個の結果があるはずですが、条件により 4 個が除外されました。
上記は、MySQL の共通基本操作構文 (8)~~複数テーブル クエリのマージ結果と内部結合クエリの内容 [コマンド ライン モード] より多くの関連コンテンツについては、PHP 中国語 Web サイト ( www.php.cn)!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!