【发布时间】:2017-12-04 03:18:58
【问题描述】:
我搜索了类似的问题,但解决方案是针对不同表结构的不同情况:(
我需要获取带有相似标签的 design_id 列表,按最常见标签的条目排序
表结构:
shop_tags (tag_id, tag_name)
shop_tags_link (tag_id, design)
shop_tshirts (design_id, article_id)
假设我有 4 个设计
design_id 1 tags = red, blue
design_id 2 tags = black, grey
design_id 3 tags = yellow, green
design_id 4 tags = white, red, black
design_id 5 tags = red
输入是一组设计 ID:
$input = array("1", "2");
我需要找到具有相似标签的设计并按常见标签计数 (desc) 对其进行排序,因此如果输入是设计 1 和 2,我们正在寻找带有标签“红色、蓝色、黑色、灰色”的设计将按此顺序给出以下结果:
design 4, design 5(当然不包括原始输入设计)
最后,我需要从表 shop_tshirts 中找到对应的 article_id 与匹配的设计,而不是返回设计 ID。做这个的最好方式是什么?我应该做一个单独的查询还是另一个 INNER JOIN?
【问题讨论】:
标签: php mysql sql inner-join