Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL mengembalikan 1 gambar untuk setiap produk

Yang ini akan berhasil, tetapi cukup jelek

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;

alternatif :

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. Cara mendekati dilema:pesanan ekspor dari sistem magento lama impor ke magento baru, ID yang tumpang tindih

  2. Ekspor DataBase dengan MySQL Workbench dengan pernyataan INSERT

  3. kata kunci MySQL AS

  4. Permintaan SQL mengembalikan Operan harus berisi 1 kolom

  5. Peringatan:mysqli_query() mengharapkan parameter 1 diberikan boolean mysqli