2 つのクエリを 1 つのテーブルにまとめるには、UNION
が必要です。 手術。これは 2 つの結果セットを取り、基本的にそれらを結合します。
Union にはいくつかの制限があり、最も重要なことは、クエリの列数が同じである必要があるということです。
あなたのクエリでは、異なる数の列が選択されています. credit_card_master
クエリにはそれぞれ 5 つの列があり、PG_NetBanking_Charges
クエリにはそれぞれ 4 つの列があります。
私が見る限り、card_type
は 最初のクエリの列は 2 番目のクエリに相当するものがないため、2 番目のクエリを次のように書き換えることができます:
SELECT card_name, card_type, charge_amount, B2C_Amount_type, PGM.PG_Type
FROM ...
WHERE ...
UNION
SELECT PGM.Payment_Gateway_Name, null, PGNBC.Online_DC_Charge_Amt,
PGNBC.Online_DC_Charge_type, PGM.PG_Type
FROM ...
WHERE ...
また、結果セットの列は最初のクエリから列の名前を取得するため、列のエイリアスを追加して、列のより意味のある一般的な名前を取得することもできます。また、通常、ユニオン内の行の起源を追跡できるようにする「ソース」列を追加するため、最終的なクエリは次のようになります。
SELECT 1 as Source, card_name as Name, card_type as Type,
charge_amount as Ammount, B2C_Amount_type as AmmountType,
PGM.PG_Type as PG_Type
FROM ...
WHERE ...
UNION
SELECT 2, PGM.Payment_Gateway_Name, null, PGNBC.Online_DC_Charge_Amt,
PGNBC.Online_DC_Charge_type, PGM.PG_Type
FROM ...
WHERE ...
結果には列 Source
が含まれます 、 Name
、 Type
、 Ammount
、 AmmountType
および PG_Type
、ここで Source
最初のクエリの行では 1、2 番目のクエリの行では 2 になります。