Php 如何返回给定产品的最高评分图像?

Php 如何返回给定产品的最高评分图像?,php,mysql,max,Php,Mysql,Max,我有两张桌子,产品和产品图片。我还有第三个表格“product_Categoris”,但我不确定这与这个问题有多大关系) 在ProductImages表中,我有一个名为score的列作为int,还有一个product_id列。我想从product表中选择一行或多行,并获得最高评分的图像返回。到目前为止,我有: SELECT `products`.*, `product_categorys`.`categoryName`, `product_categorys`.`categoryDescript

我有两张桌子,产品和产品图片。我还有第三个表格“product_Categoris”,但我不确定这与这个问题有多大关系)

在ProductImages表中,我有一个名为score的列作为int,还有一个product_id列。我想从product表中选择一行或多行,并获得最高评分的图像返回。到目前为止,我有:

SELECT `products`.*, `product_categorys`.`categoryName`, `product_categorys`.`categoryDescription`, `product_images`.`thumbName`
FROM (`products`)
INNER JOIN `product_categorys` ON `products`.`categoryID` = `product_categorys`.`pid`
left JOIN `product_images` ON `products`.`pid` = `product_images`.`productID`
WHERE `products`.`vendorID` =  '14'
AND `products`.`deleted` =  0
GROUP BY `products`.`pid`
ORDER BY `title` asc
LIMIT 10
它返回一个产品图像,但不是最高评分的图像,我不知道如何修改这个查询(这是由codeigniter生成的),以满足我的需要


需要更改/添加哪些内容才能让查询返回得分最高的图像?我不知道它是否有效,但请尝试一下:

SELECT p.*, 
       pc.categoryName, pc.categoryDescription, 
       pim.thumbName, pim.score
FROM products p INNER JOIN product_categorys pc 
    ON p.categoryID = pc.pid
LEFT JOIN product_images pim 
    ON p.pid = pim.productID
WHERE p.vendorID =  '14'
  AND p.deleted =  0
  AND (pim.score = 
      (SELECT MAX(score) FROM product_images pim2 
       WHERE p.pid = pim2.productID)
   OR pim.score IS NULL)
GROUP BY p.pid
ORDER BY title ASC
LIMIT 10

检查此项谢谢Marco,这导致了此错误:“where子句”中的未知列“pim.id”。谢谢,此项功能正常,但仅显示图像表中至少有一个对应行的产品行。Marco,您的操作非常成功,非常感谢您的帮助,非常感谢。