एक तालिका में दो प्रश्नों को संयोजित करने के लिए, आपको UNION
की आवश्यकता होगी संचालन। यह दो परिणाम सेट लेता है, और मूल रूप से उन्हें एक साथ चिपका देता है।
संघ के पास कुछ प्रतिबंध हैं, और सबसे महत्वपूर्ण यह है कि यह आवश्यक है कि प्रश्नों में स्तंभों की संख्या समान हो।
आपकी क्वेरी में आपके पास विभिन्न संख्या में कॉलम चुने गए हैं, credit_card_master
प्रत्येक क्वेरी में 5 कॉलम होते हैं, और PG_NetBanking_Charges
प्रश्नों में प्रत्येक में 4 कॉलम होते हैं।
मैं जो देख सकता हूं, उससे मुझे लगता है कि card_type
पहली क्वेरी के कॉलम का दूसरी क्वेरी में कोई समकक्ष नहीं है, इसलिए आप दूसरी क्वेरी को इस प्रकार फिर से लिख सकते हैं:
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 होगा।