首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL优化多个连接结果中的重复记录

SQL优化多个连接结果中的重复记录
EN

Stack Overflow用户
提问于 2013-03-26 03:51:29
回答 3查看 799关注 0票数 0

例如,我有3个表:第一个像'Users',每个用户的名字都存储在这里。第二个- 'Location',存储用户地址的地方-通常是一个用户的一个地址。第三个是“消息”--每个用户通常都有一堆记录。

当连接这三个表时-就像

代码语言:javascript
复制
SELECT Users.name, Location.address, Messages.message FROM Users
LEFT JOIN Location ON Location.user_id = Users.id
LEFT JOIN Messages ON Messages.user_id = Users.id
WHERE blah blah

结果将包含许多重复的记录,因为表'Messages‘对每个用户都有许多记录。这些副本会减慢抓取速度。因此,我正在寻找解决方案,如何对其进行优化。例如,我尝试使用GROUP_CONCAT()GROUP BY User.id -但当GROUP_CONCAT()的结果变得相对较长时,GROUP_CONCAT()开始返回NULL。我无法掌握它,我曾尝试将group_concat_max_lenmax_allowed_packet设置为较高的值-但都没有成功。

好吧,有人对此有什么想法吗?

ps可能很重要的一点是,在我的实际情况中,我有许多列和许多不同的行,而不是只有一列'message‘。我的'Messages‘表看起来像'message','time','recipient',’deleted','medium‘等等,我的GROUP_CONCAT()包含所有这些字段。

更新:如果只有一条记录显示为NULL,则GROUP_CONCAT()似乎会丢弃所有结果。例如,如果使用GROUP_CONCAT(Messages.message, Messages.time),并且一行中的时间偶尔会为NULL,则将返回NULL。

EN

Stack Overflow用户

发布于 2013-03-26 03:53:41

在这种情况下,您实际上可能受益于文档存储数据库,如Mongo,用于存储消息。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15623493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档