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

दो तालिकाओं में शामिल हों, फिर तिथि के अनुसार आदेश दें, लेकिन दोनों तालिकाओं को मिलाकर

यदि दोनों तालिकाओं के स्तंभ समान हैं, तो आप UNION का उपयोग कर सकते हैं

SELECT X.*
  FROM ( SELECT `id`,
                `userID`,
                 'INVOICE' AS PTYPE
                 `amount`,
                 `date`
            FROM `invoices`
           WHERE {$userID} = userID  
          UNION
          SELECT `id`,
                 `userID`,
                 'PAYMENT' AS PTYPE
                 `amount`,
                 `date`
            FROM `payments`
           WHERE {$userID} = userID  
        ) X
 ORDER BY X.`date`

संपादित करें

MySQL मैन्युअल का प्रासंगिक अनुभाग पढ़ें यूनियनों पर। इसे वाक्यांशबद्ध करने के अन्य तरीके हैं, लेकिन यह मेरी पसंदीदा शैली है - यह पढ़ने वाले किसी भी व्यक्ति के लिए स्पष्ट होना चाहिए कि ORDER BY खंड दोनों के परिणाम पर लागू होता है संघ के पक्ष। एक लापरवाही से लिखा गया UNION - यहां तक ​​कि ORDER BY के साथ भी - अभी भी अनिश्चित क्रम में अंतिम परिणाम छोड़ सकता है।

PTYPE का उद्देश्य यह है कि यह क्वेरी PTYPE नामक एक अतिरिक्त कॉलम लौटाती है, जो इंगित करता है कि प्रत्येक व्यक्तिगत पंक्ति एक चालान है या एक भुगतान... यानी। यह दो तालिकाओं में से किससे आता है। यह अनिवार्य नहीं है, लेकिन संघ के भीतर अक्सर उपयोगी हो सकता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कनेक्टर/पायथन django में काम नहीं कर रहा है

  2. php में mysql टेबल को कैसे लॉक करें?

  3. Yii में एक सरणी में sql क्वेरी कैसे डालें?

  4. MySQL में डायनामिक पिवट टेबल कैसे बनाएं

  5. मैसकल पासवर्ड की समय सीमा समाप्त हो गई। कनेक्ट नहीं हो सकता