在显示特定对象的页面上,我需要基于标签显示该对象的相关对象. ´具有最匹配标签的对象应位于顶部.基本上我基本上需要确定每个对象有多少标签与页面上的对象匹配,并显示最佳结果.
我的数据库模式:
table Object------------ ID nametable Tagset------------- object_ID tag_IDtable Tag------------ ID name
最佳答案这应该做您想要的:SELECT object.name,COUNT(*) AS tag_countFROM Tagset T1JOIN Tagset T2ON T1.tag_ID = T2.tag_ID AND T1.object_ID != T2.object_IDJOIN objectON T2.object_ID = object.IDWHERE T1.object_ID = 1GROUP BY T2.object_IDORDER BY COUNT(*) DESC
结果:
'object2',2'object3',1
使用此测试数据:
CREATE table object (ID int NOT NulL,name nvarchar(100) NOT NulL);INSERT INTO object (ID,name) VALUES(1,'object1'),(2,'object2'),(3,'object3');CREATE table Tagset (object_ID int NOT NulL,tag_ID int NOT NulL);INSERT INTO Tagset (object_ID,tag_ID) VALUES(1,1),(1,2),3),4),5);
总结 以上是内存溢出为你收集整理的MySQL通过标签选择相关对象 全部内容,希望文章能够帮你解决MySQL通过标签选择相关对象 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)