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

सभी समाचार और सभी टिप्पणियां प्राप्त करें

आप एक प्रश्न में ऐसा नहीं कर सकते हैं - आपके पास जो प्रश्न है उसे लेने के लिए सबसे अच्छा है और आपको आवश्यक डेटा संरचना प्राप्त करने के लिए परिणामी उत्तर पोस्ट-प्रोसेस करें।

आगे विस्तार करने के लिए - कोई भी SQL क्वेरी डेटा की केवल दो आयामी सरणी लौटा सकती है - कॉलम के लिए एक आयाम, और मिलान पंक्तियों के लिए एक। आपके मामले में आप वास्तव में जो चाहते हैं वह एक त्रि-आयामी तालिका की तरह है।

यह भी ध्यान दें कि लिखित रूप में आपकी क्वेरी पर सभी news वापस आ जाएंगे प्रत्येक लेख के खिलाफ प्रत्येक टिप्पणी के लिए बार-बार डेटा। यह डेटाबेस सर्वर से बैंडविड्थ और संसाधन का अक्षम उपयोग है।

इसे इस तरह करना शायद अधिक कुशल है (छद्म कोड में):

SELECT * FROM news
...
foreach ($rows as $row) {
  $row['comments] = array();
  $news[$row['id']] = $row;
}

SELECT * FROM comments
...
foreach ($rows as $row) {
  $news[$row['news_id']]['comments'][] = $row;
}

पहली क्वेरी में सभी समाचार लेख मिलते हैं और उन्हें एक सरणी में रखते हैं। दूसरी क्वेरी टिप्पणियों को प्राप्त करती है, और प्रत्येक समाचार लेख की संरचना के भीतर एक अलग सरणी जमा करती है।



  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 का उपयोग करके एक वेब ऐप बनाना:भाग 4

  2. क्या मैं सही तरीके से सेनिटाइज/एस्केप कर सकता हूं?

  3. MySQL - सबक्वेरी के आधार पर मान अपडेट करें

  4. पायथन, MySQL त्रुटि से बचने के लिए 4-बाइट चार कन्वर्ट करें गलत स्ट्रिंग मान:

  5. DATE () उदाहरण – MySQL