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

प्रत्येक पंक्ति के लिए किसी अन्य तालिका से पंक्तियों को सरणी के रूप में जोड़ना

मुझे लगता है कि आपको mysql के GROUP_CONCAT<की आवश्यकता है /ए>

कुछ इस तरह करें:-

SELECT 
    movies.*, 
    group_concat(links.link ', ') as links
FROM movies 
LEFT JOIN links 
ON links.movieid = movies.movieid 
GROUP BY movies.movieid

आपको हर मूवी के लिंक्स की कॉमा सेपरेटेड लिस्ट मिलेगी। जिसे आप इस तरह से एक्सट्रेक्ट कर सकते हैं:-

foreach ($movies->result() as $row) {
  $linksArray = explode(",",$row->links);
}

अपडेट मुझे लगता है कि यह एकमात्र तरीका है जिससे आप एक से अधिक लिंक वाली एक फिल्म के लिए कई परिणाम पंक्तियों के बिना परिणाम प्राप्त कर सकते हैं।

परिणाम में आपको मिलने वाले वर्णों की अधिकतम लंबाई से सावधान रहें - डिफ़ॉल्ट रूप से 1024 वर्ण। इसे पढ़ेंMysql group_concat_max_length और ग्रुप कॉनकैट अधिकतम लंबाई सीमा को पार करने का तरीका जानने के लिए।

और जैसा कि डैन ग्रॉसमैन ने बताया है, अगर आपको लगता है कि लिंक में अल्पविराम हो सकता है, तो एक अलग या असामान्य सीमांकक का उपयोग करें।



  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 स्क्रिप्ट में पैरामीटर पास करें

  2. PHPMyAdmin के साथ cPanel में MySQL डेटाबेस को मैनेज करना

  3. शीर्ष 10 रिकॉर्ड का चयन करने के लिए एसक्यूएल

  4. पाठ का अनुच्छेद mysql में सहेजा जा रहा है

  5. डेटाबेस व्यवस्थापन के लिए MySQL कार्यक्षेत्र स्थापित करें