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

MySQL में दो तालिकाओं से कैसे चयन करें, भले ही एक तालिका की सभी पंक्तियों में दूसरे में संवाददाता न हों?

ऐसा करने के लिए आपको एक बाहरी जुड़ाव की आवश्यकता है। वैसे, जिस तरह से आप अपनी क्वेरी को एक अंतर्निहित जुड़ाव के साथ लिख रहे हैं वह पुराना है और अब इसकी अनुशंसा नहीं की जाती है। जॉइन कीवर्ड का उपयोग करने की अनुशंसा की जाती है। इससे आंतरिक जुड़ाव को बाहरी जुड़ाव में बदलना भी आसान हो जाता है।

FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id

NULL के बजाय 0 वापस करने के लिए IFNULL(..., 0) . पूरी क्वेरी बन जाती है:

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id

आप यह भी विचार करना चाहेंगे कि क्या उन श्रेणियों के लिए 0 के बजाय डिफ़ॉल्ट NULL को वापस करना बेहतर होगा जिनके पास कोई उत्पाद नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लिनक्स के लिए 12 MySQL/MariaDB सुरक्षा सर्वोत्तम अभ्यास

  2. अपने MySQL टेबल्स पर इंडेक्स बनाने के लिए सर्वोत्तम अभ्यास - रोलिंग इंडेक्स बनाता है

  3. डेटाबेस और ऑथ उपयोगकर्ता से नमकीन पासवर्ड कैसे वापस लें?

  4. SQL क्वेरी के परिणाम मेरे अपेक्षित क्रम में वापस क्यों नहीं आते हैं?

  5. MySQL में ट्रेलिंग व्हाइटस्पेस कैसे निकालें