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

MySQL:उपश्रेणियों से पूर्ण डेटा के साथ दो कई से कई संबंधों और डुप्लिकेट के साथ क्वेरी

JOIN . का उपयोग करके आप मनचाहा डेटा प्राप्त कर सकते हैं सबक्वेरी में एस। यदि आप केवल नाम चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

SELECT a.id, a.title,
       (SELECT JSON_ARRAYAGG(au.name)
        FROM article_author aa JOIN
             author au
             ON au.id = aa.author_id
        WHERE a.id = aa.article_id
       ) as authors,
       (SELECT JSON_ARRAYAGG(t.tag)
        FROM article_tag art JOIN
             tag t
             ON art.tag_id = t.id
        WHERE a.id = art.article_id
       ) as tags
FROM article a;

मुझे यकीन नहीं है कि आप आईडी और नाम दोनों के साथ कौन सी डेटा संरचना चाहते हैं। यदि आप प्रत्येक ऑब्जेक्ट में दो फ़ील्ड के साथ JSON ऑब्जेक्ट की एक सरणी चाहते हैं:

SELECT a.id, a.title,
       (SELECT JSON_ARRAYAGG(JSON_OBJECT('name', au.name, 'id', au.id))
        FROM article_author aa JOIN
             author au
             ON au.id = aa.author_id
        WHERE a.id = aa.article_id
       ) as authors,
       (SELECT JSON_ARRAYAGG(JSON_OBJECT('tag', t.tag, 'id', t.id))
        FROM article_tag art JOIN
             tag t
             ON art.tag_id = t.id
        WHERE a.id = art.article_id
       ) as tags
FROM article a;

यहां इस संस्करण के लिए एक db<>बेला है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIMESTAMPADD () उदाहरण – MySQL

  2. MySQL कार्यक्षेत्र में संपूर्ण डेटाबेस स्क्रिप्ट कैसे उत्पन्न करें?

  3. विंडो-1251 (रूसी सिरिलिक) MySql डेटाबेस को UTF-8 में कैसे बदलें?

  4. PHPUnit परीक्षण केवल Laravel 5 में मूल पृष्ठ (विज़िट ('/') ) पर जाने पर ही विफल हो जाता है

  5. MySQL GUI टूल्स का उपयोग करके फ़ील्ड को NULL कैसे बनाएं?