मुझे यह पता लगाने में समस्या है कि मेरी क्वेरी कैसे सेट अप करें। मैं एक प्रश्न में संबंधों के बिना दो तालिकाओं का चयन करना चाहता हूं। शोध के बाद मुझे यूनियन के बारे में पता चला है, लेकिन समस्या कुछ मामलों में है, मेरे पास टाइप या स्टेटस कॉलम हैं जो एनम है और जब मैं उन्हें चुनने की कोशिश कर रहा हूं तो मुझे त्रुटि मिल रही है:
ERROR: UNION could not convert type money_transfer_type_enum to invoice_type_enum
मुझे लगता है कि एक प्रश्न में दो पूरी तरह से अलग तालिकाओं का चयन करना सबसे अच्छा अभ्यास नहीं है, लेकिन कुछ कारणों से मुझे इसकी आवश्यकता है, इसलिए एक और सवाल यह है: यदि संघ सभी मुझे इसे संभालने में मदद नहीं करेगा तो क्या कोई और है? अग्रिम में thx
2 जवाब
सुनिश्चित नहीं है कि कॉलम किस प्रकार के हैं, लेकिन आप दोनों कॉलम को एक ही प्रकार में डाल सकते हैं, जैसे कुछ
SELECT money_transfer_type_enum::VARCHAR
FROM table1
UNION ALL
SELECT invoice_type_enum::VARCHAR
FROM table2
इस प्रकार की असंगति के लिए वर्चर एक पकड़ है, लेकिन यह कुछ लागतों के साथ आता है। आप देखना चाहेंगे कि दोनों कॉलम को INTEGER में डालने से भी समस्या हल हो सकती है
ऐसा प्रतीत होता है कि आप union
दो अलग-अलग एनमों को एक साथ नहीं कर सकते। आप संभावित रूप से दो सेटों को एक साथ जोड़ सकते हैं, लेकिन उन्हें अलग-अलग कॉलम में रख सकते हैं।
select money_transfer_type_enum,
NULL as invoice_type_enum
from tblA
union all
select NULL as money_transfer_type_enum,
invoice_type_enum
from tblB
सुनिश्चित नहीं है कि यह आपकी समस्या का समाधान करता है, लेकिन इससे आपको बिना किसी त्रुटि के दो तालिकाओं को एक साथ जोड़ने की अनुमति मिलनी चाहिए।
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।