ホームページ >データベース >mysql チュートリアル >KnownHours テーブルと UnknownHours テーブルを結合して統一時間レポートを作成するにはどうすればよいですか?
統合出力のためのテーブルの結合
はじめに:
複数のテーブルを扱う場合、次のことが必要になります。包括的で意味のある出力を提供するためにそれらをマージします。テーブルの結合には、結合、結合、集計などの手法が含まれます。
問題ステートメント:
当面のタスクは、2 つのテーブル KnownHours と UnknownHours を 1 つの出力に結合することです。時間をChargeNumとCategoryIDでグループ化し、月を無視します。
テーブル詳細:
Table | Column | Description |
---|---|---|
KnownHours | ChargeNum | Unique charge number |
KnownHours | CategoryID | Category associated with the charge |
KnownHours | Month | Month when the charge was incurred |
KnownHours | Hours | Known hours for the charge |
UnknownHours | ChargeNum | Unique charge number |
UnknownHours | Month | Month when the charge was incurred |
UnknownHours | Hours | Unknown hours for the charge |
必要な出力:
予期される出力は、次の構造を持つ単一のテーブルです:
Table | Column | Description |
---|---|---|
Consolidated | ChargeNum | Unique charge number |
Consolidated | CategoryID | Category associated with the charge or 'Unknown' |
Consolidated | Hours | Total hours for the charge |
解決策:
目的の出力を実現するには、SQL で UNION 演算を利用します。 UNION は、複数のクエリの結果を 1 つのテーブルに結合します。この場合、KnownHours テーブル用と UnknownHours テーブル用の 2 つのクエリを実行します。クエリは、各 ChargeNum と CategoryID (UnknownHours の場合は「Unknown」) の時間を集計します。
KnownHours テーブルの最初のクエリ:
UnknownHours テーブルの 2 番目のクエリ:
最後に、これら 2 つのクエリの結果を結合します。 using UNION ALL:
この UNION ALL 操作は、2 つのクエリの結果を 1 つのテーブルに連結し、目的の出力を提供します。
以上がKnownHours テーブルと UnknownHours テーブルを結合して統一時間レポートを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。