gpt4 book ai didi

mysql - 按组中联接表的最大值排序

转载 作者:可可西里 更新时间:2023-11-01 09:00:01 24 4
gpt4 key购买 nike

我需要完成对 4 个表的查询

  • 图片:id

  • 标签:id,name

  • TagImages:image_id、tag_id(图像和标签的外键)

  • ColorImages:image_id、十六进制、值(图像的外键)

我想获得具有共同标签和颜色的相似图像。图片应至少有一个相同的标签,但按相似颜色排序。

我写了这样的标签相似度查询:

SELECT TagImages.imageId , count(*) AS q
FROM TagImages
Join colorImages ON colorImages.imageId = TagImages.imageId
WHERE TagImages.tagId IN (
SELECT TagImages.tagId
FROM TagImages
WHERE TagImages.imageId=41
)
AND TagImages.imageId!=41
GROUP BY TagImages.imageId
ORDER BY q DESC

它工作正常,但它需要添加颜色“order by”以使用目标图像的颜色对图像进行排序。 ColorImages 表有一个名为 value 的列,表示该颜色在图像中的百分比,因此最好对颜色值最高的图像进行排序。

最佳答案

不用研究表结构和数据我就可以展示它,它应该可以工作,如果你把表结构和一点点数据脚本放在一起,这样我们就可以使用它并得到所需的结果。

SELECT TagImages.imageId , count(*) AS q, ColorImage.value
FROM TagImages
Join colorImages ON colorImages.imageId = TagImages.imageId
WHERE TagImages.imageId=41
GROUP BY TagImages.imageId, ColorImage.value
ORDER BY q DESC, ColorImage.value

关于mysql - 按组中联接表的最大值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com