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

mysql में दाएँ तालिका के लिए शर्त के साथ बाएँ शामिल हों

मान लें कि PRICES.date एक DATETIME डेटा प्रकार है, उपयोग करें:

   SELECT pd.id, 
          pd.name, 
          pr.price
     FROM PRODUCTS pd
LEFT JOIN PRICES pr ON pr.id = pd.id
                   AND DATE(pr.date) = CURRENT_DATE

मैंने DATE फ़ंक्शन समय भाग निकालने के लिए, क्योंकि CURRENT_DATE DATETIME रिकॉर्ड करते समय समय भाग शामिल नहीं होगा।

इस उदाहरण में, date मानदंड पहले . लागू किया जा रहा है जॉइन किया जाता है। यह एक व्युत्पन्न तालिका की तरह है, जो जॉइन किए जाने से पहले जानकारी को फ़िल्टर कर रहा है - जो WHERE क्लॉज में मानदंड निर्दिष्ट किए जाने की तुलना में अलग-अलग परिणाम देगा।

कल के लिए उत्पादों और कीमतों की सूची प्राप्त करने के लिए, उपयोग करें:

   SELECT pd.id, 
          pd.name, 
          pr.price
     FROM PRODUCTS pd
LEFT JOIN PRICES pr ON pr.id = pd.id
                   AND DATE(pr.date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)

संदर्भ:

यदि आप एक ही प्रश्न में आज और कल दोनों की कीमतें चाहते हैं, तो इसका उपयोग करें:

   SELECT pd.id, 
          pd.name, 
          pr1.price AS price_today,
          pr2.price AS price_tomorrow
     FROM PRODUCTS pd
LEFT JOIN PRICES pr1 ON pr1.id = pd.id
                   AND DATE(pr1.date) = CURRENT_DATE
LEFT JOIN PRICES pr2 ON pr2.id = pd.id
                   AND DATE(pr2.date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)


  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 परिणाम अनुक्रमणिका 13 पर पंक्ति 0 पर जाने में असमर्थ

  2. एक sql क्वेरी को कैसे सुधारें

  3. PHP स्क्रिप्ट को निर्धारित समय पर कैसे चलाएं

  4. Django में manage.py के साथ सीएलआई से डेटाबेस को साफ़ करने का सबसे आसान तरीका क्या है?

  5. MySQL कुछ विदेशी कुंजियों को हटा रहा है