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

MySQL प्रत्येक उत्पाद के लिए 1 छवि लौटा रहा है

यह काम करेगा, लेकिन काफी बदसूरत है

select p.intProductId, p.strProductName, pi.strImageName 
from tblProducts p
inner join tblProductImages pi on pi.intProductID = p.intProductId
inner JOIN (select min(intOrder) minOrder, intProductID
           FROM tblProductImages
           GROUP BY intProductID) s
           on s.intProductID = p.intProductID and s.minOrder = pi.intOrder
union
select p.intProductId, p.strProductName, pi.strImageName
from tblProducts p
left join tblProductImages pi on pi.intProductID = p.intProductId
where pi.intProductID is null;

वैकल्पिक :

select p.intProductId, p.strProductName, pi.strImageName
from tblProducts p
left join tblProductImages pi on pi.intProductID = p.intProductId
where pi.intProductId is null or pi.IntOrder = (select min(intOrder)
                                                from tblProductImages
                                                where intProductId = pi.intProductId);

Sqlfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MyBatis 'IN' क्लॉज में सूचियाँ

  2. कनेक्शन पूल का उपयोग करने के बाद भी कई समवर्ती कनेक्शन कैसे संभालें?

  3. सरणी में mysql डेटा की पंक्ति/स्तंभ कैसे स्टोर करें?

  4. MySQL में बाइनरी लाइक ऑपरेशंस के लिए इंडेक्सिंग

  5. Laravel 5.5 समेकित माइग्रेशन w/ उत्पादन डेटाबेस