【问题标题】:Query to get Related products sort by matching tags查询以通过匹配标签排序相关产品
【发布时间】:2015-07-27 22:41:44
【问题描述】:

我正在尝试使用 mysql 为自定义 php 站点中的产品创建相关算法。

我有一个产品表,另一个用于标签,还有一个用于 products_tags 的关系表。

给定一个产品,我必须根据给定产品的匹配标签数量找到产品订单。

例子:

Product 1 tags: tag1, tag2, tag3, tag4.
Product 2 tags: tag2.
Product 3 tags: tag1, tag2, tag4.
Product 4 tags: tag1, tag5, tag2.

结果:

产品 1 相关:

Product3(3 个匹配项)

Product4(2 个匹配项)

Product2(1 个匹配项)

这个想法是只用一个 mysql 查询来做到这一点

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    SELECT COUNT(1) AS count1, pt1.product_id FROM product_tags pt1 WHERE tag_id in (select tag_id from product_tags WHERE product_id = ?) AND product_id != ? GROUP BY pt1.product_id ORDER BY count1 DESC

    【讨论】:

      【解决方案2】:
      SELECT COUNT(1) AS count1, pt1.product_id FROM product_tags pt1 WHERE tag_id in (select tag_id from product_tags WHERE product_id = ?) AND product_id != ? GROUP BY pt1.product_id ORDER BY count1 DESC
      

      更改为排除原始产品

      【讨论】:

        猜你喜欢
        • 2022-01-09
        • 2021-09-06
        • 2011-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多