ホームページ > データベース > mysql チュートリアル > 構造は似ているがカテゴリが異なる 2 つのテーブルを 1 つの出力テーブルに結合するにはどうすればよいですか?

構造は似ているがカテゴリが異なる 2 つのテーブルを 1 つの出力テーブルに結合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-22 21:31:17
オリジナル
941 人が閲覧しました

How Can I Combine Two Tables with Similar Structures but Different Categories into a Single Output Table?

単一出力のための 2 つのテーブルの結合

データベース操作では、多くの場合、複数のソースからのデータを結合した出力に結合する必要があります。共通の課題は、構造は似ているがカテゴリが異なるテーブルを結合することです。次の問題を考えてみましょう。

「KnownHours」と「UnknownHours」という 2 つのテーブルがあり、その列には ChargeNum (一意の識別子)、CategoryID (カテゴリの割り当て)、Month (日付)、Hours (実際の値)。タスクは、Month 列を無視してこれらのテーブルを 1 つのデータ テーブルに結合し、ChargeNum と CategoryID で時間をグループ化することです。

期待される出力は次のとおりです。

ChargeNum    CategoryID     Hours
111111       1              90
111111       2              50
111111       Unknown        110.5
222222       1              40
222222       Unknown        25.5
ログイン後にコピー

これを達成するにはでは、2 つのクエリの結果を結合する UNION 演算子を利用できます。この問題では、2 つのクエリを作成します:

クエリ 1:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
ログイン後にコピー

このクエリは、ChargeNum、CategoryID、およびそれぞれの時間の合計を取得します。 「KnownHours」テーブルからの組み合わせ。

クエリ2:

SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum
ログイン後にコピー

このクエリは、「UnknownHours」テーブルの各エントリの ChargeNum と時間の合計を取得し、CategoryID として「Unknown」を割り当てます。

両方を組み合わせます。 UNION ALL を使用したクエリは、目的の出力を生成します。

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 つのテーブルを 1 つの出力テーブルに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート