为了账号安全,请及时绑定邮箱和手机立即绑定

来自GROUP_BY的两个LEFT JOIN的GROUP_CONCAT的奇怪重复行为

来自GROUP_BY的两个LEFT JOIN的GROUP_CONCAT的奇怪重复行为

蝴蝶不菲 2019-08-23 10:12:08
来自GROUP_BY的两个LEFT JOIN的GROUP_CONCAT的奇怪重复这是我所有表格的结构和查询(请关注最后一个查询,如下所示)。正如你在小提琴中看到的,这是当前的输出:+---------+-----------+-------+------------+--------------+| user_id | user_name | score | reputation | top_two_tags |+---------+-----------+-------+------------+--------------+| 1       | Jack      | 0     | 18         | css,mysql    || 4       | James     | 1     | 5          | html         || 2       | Peter     | 0     | 0          | null         || 3       | Ali       | 0     | 0          | null         |+---------+-----------+-------+------------+--------------+这是正确的,一切都很好。现在我还有一个名为“category”的存在。每个帖子只能有一个类别。而且我还希望为每个用户获得前两个类别。而这里是我的新的查询。正如您在结果中看到的,发生了一些重复:+---------+-----------+-------+------------+--------------+------------------------+| user_id | user_name | score | reputation | top_two_tags |   top_two_categories   |+---------+-----------+-------+------------+--------------+------------------------+| 1       | Jack      | 0     | 18         | css,css      | technology,technology  || 4       | James     | 1     | 5          | html         | political              || 2       | Peter     | 0     | 0          | null         | null                   || 3       | Ali       | 0     | 0          | null         | null                   |+---------+-----------+-------+------------+--------------+------------------------+看到?css,css,technology, technology。为什么这些是重复的?我只是增加了一个LEFT JOIN对categories,一模一样tags。但它不能按预期工作,甚至也会对标签产生影响。有谁知道我怎么能做到这一点?
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

这里没有一般原则来决定。我说,这是一个权衡,你必须在你的确切情况下(包括重要的是你的期望和优化者)来衡量,就像工程“最好”(一个嵌合体)一样。(不同和累积查询的计划似乎很接近;但数据和统计数据都是玩具。我希望优化器能够实现接近累积或内部连接的子选择查询,因为它们之间有明显的简单转换。我是更加怀疑你的查询中的所有重复,但我想解决连接周围的问题。

查看完整回答
反对 回复 2019-08-23
  • 2 回答
  • 0 关注
  • 1494 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信