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

दो प्रश्नों को एक में मिलाना

यदि मौजूदा प्रश्न वही करते हैं जो आप चाहते/चाहते हैं, UNION उन्हें संयोजित करना बहुत आसान बना देगा, कुछ इस तरह;

SELECT * FROM (
    SELECT is_private 0, <field1>,<field2>,<field3>, ... ,(SELECT COUNT(*) 
               FROM votes 
               WHERE message_id = m.message_id
                 AND vote_type = 'like') AS likes,
              (SELECT COUNT(*) 
               FROM votes
               WHERE message_id = m.message_id 
               AND vote_type = 'dislike') AS dislikes 
    FROM messages m
    WHERE 1 #and hidden is null
      and recipient_id = 1
    UNION ALL
    SELECT 1, <field1>, <field2>, <field3>, ... ,(SELECT COUNT(*) 
               FROM votes 
               WHERE message_id = m.message_id
                 AND vote_type = 'like') AS likes,
              (SELECT COUNT(*)
               FROM votes
               WHERE message_id = m.message_id  
                 AND vote_type = 'dislike') AS dislikes 
    FROM private_messages m 
    WHERE 1 #and hidden is null 
      and recipient_id = 1 
)
ORDER BY datetime DESC

ध्यान दें कि संघ के काम करने के लिए आपको दोनों प्रश्नों से समान संख्या/स्तंभों का चयन करना होगा। SELECT * यह सत्यापित करना कठिन बनाता है कि क्या/वह मामला है। अगर



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि:अपरिभाषित संपत्ति $load

  2. mysql:बस सप्ताहांत में कुछ होने का चयन करें

  3. SQLSTATE [42S02]:आधार तालिका या दृश्य नहीं मिला:1146 तालिका X मौजूद नहीं है

  4. Yii2 में स्थिति के साथ उप-क्वेरी चुनें () / QueryBuilder

  5. मैं अपने डेटाबेस कनेक्शन को कैसे सुरक्षित बना सकता हूँ?