Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL trả về 1 hình ảnh cho mỗi sản phẩm

Cái này sẽ hoạt động, nhưng khá xấu

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;

thay thế:

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. MySQL - cách nhóm giờ, bù lại 30 phút

  2. truy vấn mysql để chọn tất cả ngoại trừ một số thứ

  3. tìm kiếm toàn văn bản không trả về tổng số

  4. Đầu ra giữa hai ngày mysql

  5. gcc sẽ không biên dịch và chạy thư viện MySQL C