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

mysql/php:पोस्ट दिखाएं और प्रत्येक पोस्ट के लिए सभी टिप्पणियां

अपनी डेटाबेस संरचना को नहीं जानते, इसे कुछ इस तरह दिखना चाहिए। ध्यान दें कि आपको * . को बदलना चाहिए कॉलम की अधिक स्पष्ट सूचियों वाले वर्ण जिनकी आपको वास्तव में आवश्यकता है।

SELECT p.*, c.*, u.* FROM posts p
LEFT JOIN comments c ON c.post_id = p.id
LEFT JOIN users u ON u.id = p.author_id

ध्यान दें कि यदि आप केवल गणना, योग और इस तरह की चीजें प्राप्त करने का प्रयास कर रहे हैं, तो उस जानकारी में से कुछ को कैश करना एक अच्छा विचार है। उदाहरण के लिए, आप प्रत्येक क्वेरी को गिनने के बजाय पोस्ट टेबल में टिप्पणियों की संख्या को कैश करना चाह सकते हैं। टिप्पणी जोड़ते/हटाते समय केवल टिप्पणियों की संख्या को गिनें और अपडेट करें।

संपादित करें: एहसास हुआ कि आप भी प्रत्येक टिप्पणी के लिए उपयोगकर्ता डेटा संलग्न करना चाहते हैं। आप एक ही टेबल में एक से अधिक बार शामिल हो सकते हैं लेकिन यह बदसूरत हो जाता है। यह वास्तव में महंगी क्वेरी में बदल सकता है। मैं एक उदाहरण भी शामिल कर रहा हूं कि कैसे कॉलम को उपनाम दिया जाए ताकि यह कम भ्रमित करने वाला हो:

SELECT p.*, c.*, u.name as post_author, u2.name as comment_author FROM posts p
LEFT JOIN comments c ON c.post_id = p.id
LEFT JOIN users u ON u.id = p.author_id
LEFT JOIN users u2 ON u2.id = c.author_id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नया अल्पकालिक प्रमाणपत्र बहुत जल्द समाप्त हो रहा है:वर्तमान समय:एम

  2. पंक्ति दर पंक्ति के बजाय MySQL में संपूर्ण तालिका धारण करने के लिए अद्यतन का चयन करें

  3. PHP के साथ एक्सएमएल टेबल से एनएचएल स्टैंडिंग खींचना

  4. MySQL संग्रहीत कार्यविधि सूची से कई पंक्तियाँ सम्मिलित करें

  5. स्विफ्ट कोड MySQL डेटाबेस को अपडेट नहीं कर रहा है