sql >> Database teknologi >  >> RDS >> Mysql

MySQL returnerer 1 billede for hvert produkt

Denne vil virke, men er ret grim

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;

alternativ :

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. Er det en fejl i PostgreSQL SQL-motoren, og hvordan undgår man (løsning) det?

  2. Oracle Bankers regel

  3. Sådan udføres *.sql mysql-fil i min c#-applikation

  4. MySQL ATAN2() Funktion – Returner buetangenten af ​​2 værdier