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

लेफ्ट जॉइन के साथ MySQL एग्रीगेट फंक्शन

चूंकि आपके पास notes . के लिए फ़िल्टर है WHERE . में तालिका खंड JOIN एक INNER JOIN की तरह काम कर रहा है , इसे JOIN . पर ले जाएं शर्त:

SELECT
  jobs.*,
  MAX(notes.`timestamp`) AS complete_date
FROM jobs
LEFT JOIN notes 
  ON (jobs.id=notes.job_id)
  AND (notes.type="complete" OR notes.type IS NULL)
WHERE (jobs.status="complete" OR jobs.status="closed")
GROUP BY jobs.id
ORDER BY complete_date ASC;

यह सबक्वेरी का उपयोग करके भी किया जा सकता है, इसलिए आप सबक्वेरी के अंदर नोट्स फ़िल्टर लागू करें:

SELECT
  jobs.*,
  n.complete_date
FROM jobs
LEFT JOIN
(
    select job_id, MAX(`timestamp`) AS complete_date
    from notes 
    where (type="complete" OR type IS NULL)
    group by job_id
) n
  ON (jobs.id=n.job_id)
WHERE (jobs.status="complete" OR jobs.status="closed")
ORDER BY complete_date ASC



  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.04 पर mysql और mysqlnd दोनों स्थापित करें

  2. डेटाबेस में JSON संग्रहीत करना बनाम प्रत्येक कुंजी के लिए एक नया कॉलम रखना

  3. त्रुटि:SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं

  4. हाइबरनेट मानदंड प्रश्नों में समूह के साथ सभी स्तंभों का चयन करें

  5. घातक त्रुटि:बूलियन पर किसी सदस्य फ़ंक्शन bind_param () पर कॉल करें