mysql では、通常、データの保存形式は別のテーブルで管理されており、この方法ではデータ クエリの効率が向上しますが、管理上、一定の困難も伴います。実際のアプリケーションでは、通常、複数のサブテーブルに対してクエリ操作を実行する必要があり、この場合、MySQL のマージ テーブル クエリ機能を使用する必要があります。
テーブルのマージ クエリとは、特定のルールに従って複数のテーブルのデータを結果セットにマージすることを指します。 mysql では、テーブル結合クエリは、union、union all、join などの構文を使用して実装できます。以下では、これらの構文の使用法とクエリの効果をそれぞれ紹介します。
Union 構文では、複数のクエリ結果を 1 つの結果セットに結合して返すことができます。ユニオン操作では重複が自動的に削除されることに注意してください。すべてのデータを返す必要がある場合は、すべてユニオン操作を使用する必要があります。
構文形式は次のとおりです:
select 列名 from 表1 union select 列名 from 表2 select 列名 from 表1 union all select 列名 from 表2
たとえば、2 つのサブテーブル users1 と users2 があるとします。これらは同じ構造を持ち、両方に id 列と name 列があります。次の SQL クエリ ステートメントを結果セットにマージします。
select id,name from users1 union all select id,name from users2;
join 構文では、結合条件を指定して複数のテーブルを結合し、条件を満たすレコードを返すことができます。 。
構文形式は次のとおりです:
select 表1.列1,表2.列1 from 表1 join 表2 on 表1.列1=表2.列1
たとえば、2 つのサブテーブル users1 と users2 があるとします。どちらのテーブルにも都市に関連するフィールドがあります。次の SQL を使用できます。クエリ ステートメントとそれらは接続されています:
select users1.id,users1.name,users2.city from users1 join users2 on users1.city=users2.city;
サブクエリとは、select ステートメント内の別の select ステートメントのネストを指し、クエリ結果をさらにフィルターできます。
たとえば、製品 ID と取引金額を含む注文サブテーブルがあるとします。各商品の合計取引金額と平均取引金額をクエリしたいとします。次の SQL クエリを使用できます。ステートメント:
select id,sum(amount) as total,avg(amount) as average from (select id,amount from orders) as temp group by id;
上記は、mysql テーブル クエリの 3 つの構文の使用法と効果を示していますが、実際のアプリケーションでは、データ クエリや統計作業のニーズに応じて、対応するメソッドを選択できます。
以上がmysqlテーブルマージクエリの結果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。