Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में अलग-अलग कॉलम के साथ टेबल पर कई जॉइन के परिणाम से डुप्लिकेट को हटा रहा है

मुझे नहीं पता कि मैं आपकी समस्या को समझता हूं, लेकिन आप बाएं जॉइन का उपयोग क्यों कर रहे हैं? कहानी एक इनर जॉइन की तरह लगती है। यहां कुछ भी यूनियन की मांग नहीं करता है।

[संपादित करें] ठीक है, मुझे लगता है कि मैं देखता हूं कि अब आप क्या चाहते हैं। मैं जो सुझाव देने जा रहा हूं, मैंने कभी कोशिश नहीं की, और क्या अधिक है, कुछ डीबी इसका समर्थन नहीं करते हैं (अभी तक), लेकिन मुझे लगता है कि आप एक विंडोिंग फ़ंक्शन चाहते हैं।

WITH Y2 AS (SELECT Y.*, ROW_NUMBER() OVER (PARTITION BY A) AS YROW FROM Y),
     Z2 AS (SELECT Z.*, ROW_NUMBER() OVER (PARTITION BY A) AS ZROW FROM Z)
SELECT COALESCE(Y2.A,Z2.A) AS A, Y2.C, Y2.D, Z2.E, Z2.F, Z2.G
FROM Y2 FULL OUTER JOIN Z2 ON Y2.A=Z2.A AND YROW=ZROW;

विचार यह है कि सूची को यथासंभव कुछ पंक्तियों में मुद्रित किया जाए, है ना? इसलिए यदि A1 में Y में 10 और Z में 7 प्रविष्टियाँ हैं, तो हमें Z फ़ील्ड के लिए 3 NULLs वाली 10 पंक्तियाँ मिलती हैं। यह पोस्टग्रेज में काम करता है। मुझे विश्वास नहीं है कि यह सिंटैक्स MySQL में उपलब्ध है।

वाई:

 a | d | c  
---+---+----
 1 | 1 | -1
 1 | 2 | -1
 2 | 0 | -1

जेड:

 a | f | g | e 
---+---+---+---
 1 | 9 | 9 | 0
 2 | 1 | 1 | 0
 3 | 0 | 1 | 0

ऊपर दिए गए बयान का आउटपुट:

 a | c  | d | e | f | g 
---+----+---+---+---+---
 1 | -1 | 1 | 0 | 9 | 9
 1 | -1 | 2 |   |   |  
 2 | -1 | 0 | 0 | 1 | 1
 3 |    |   | 0 | 0 | 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैसेजिंग सिस्टम डेटाबेस स्कीमा

  2. पैरामीटर के साथ MySQL संग्रहीत प्रक्रिया

  3. पायथन में MySQL संग्रहीत प्रक्रिया को कैसे कॉल करें

  4. SQL डेटाबेस में GeoDataFrame लिखें

  5. CURRENT_DATE/CURDATE() डिफ़ॉल्ट DATE मान के रूप में काम नहीं कर रहा है