mysql – 如何通过多个元组(行)找到共享一个属性(列)的对?
发布时间:2020-11-14 09:30:08 所属栏目:MySql 来源:互联网
导读:我试图在这个简化的例子中找到喜欢同一组电视节目的用户对假设我有一张桌子,每个用户都可以获得他们喜欢的每个电视节目的参赛作品:|USER | Show | |-----|-------------| |001 | Lost | |001 | South Park | |002 | Lost | |003 |
我试图在这个简化的例子中找到喜欢同一组电视节目的用户对 假设我有一张桌子,每个用户都可以获得他们喜欢的每个电视节目的参赛作品:
然后我想得到一个结果:
或者更好的版本是:
基本上说:用户1喜欢与用户3相同的节目集. 我一直在玩GROUP BY和JOIN,但我仍然找不到答案:(. 到目前为止,我发现使用了
这产生了成对的用户和他们共同的展示.但我不知道从哪里开始. 最佳答案 如果您可以接受CSV而不是列表结果,则可以简单地将表分组两次:
否则,您可以将以上子查询加入到自身:
在sqlfiddle上看到它们. 当然,如果保证在Shows表中不存在重复(User,Show)对,则可以通过从GROUP_CONCAT()聚合中删除DISTINCT关键字来提高性能. (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在慢速网络上工作时,为什么mysql workbench编辑器速度太慢?
- mysql – 如何在具有外部联接和分组依据的查询中包含NULL值
- MYSQL教程apache中访问不了伪静态页面的解决方法
- php – 需要将其中的字符串w / commas正确导出到CSV文件中
- MySQL使用DATETIME字段中的DATE返回今天的记录
- 仅选择中文,仅限日语和仅限韩语在mysql / php中记录
- mysql – 不能DROP TABLE因为未知表(ERROR 1051)
- php – 如何通过管理员编辑用户信息
- Mysql应用mysql获得60天前unix时间思路及代码
- Mysql入门Mysql如何避免全表扫描的方法