ホームページ >データベース >mysql チュートリアル >SQL の UNION 操作はどのようにして複数のテーブルの時間を統合できるのでしょうか?

SQL の UNION 操作はどのようにして複数のテーブルの時間を統合できるのでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 15:05:41180ブラウズ

How Can SQL's UNION Operation Consolidate Hours from Multiple Tables?

統合された出力のためのテーブルの結合

データ操作の領域では、複数のテーブルを 1 つのまとまった出力に結合することが一般的な課題です。 KnownHours と UnknownHours という 2 つのテーブルがあり、それぞれに請求番号、カテゴリ、月、および作業時間が含まれているシナリオを考えてみましょう。目標は、月を無視して時間を集計して、統合ビューを取得することです。

これを達成するには、SQL の UNION 操作の機能を活用できます。これにより、複数のクエリの結果を 1 つのデータセットに結合できます。この特定のケースでは、SUM() 集計関数を使用して、料金番号とカテゴリ別に時間をグループ化する必要があります。

これを実現する SQL クエリは次のとおりです。

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum;

ここで、UNION ALL キーワードは 2 つの別々のクエリの結果を結合します。最初のクエリは KnownHours テーブルから時間を取得し、料金番号とカテゴリごとにグループ化します。 2 番目のクエリは、UnknownHours テーブルから時間を取得し、「Unknown」カテゴリに属する​​ものとして扱います。

UNION ALL を使用すると、重複チェックの手順が省略され、UNION のみを使用する場合と比較してパフォーマンスが向上します。

このクエリの結果は、発生した月に関係なく、各請求番号とカテゴリの合計作業時間を示す統合テーブルです。

以上がSQL の UNION 操作はどのようにして複数のテーブルの時間を統合できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。