首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL,选择多个一对多关系的条目的最佳方法?

MySQL,选择多个一对多关系的条目的最佳方法?
EN

Stack Overflow用户
提问于 2014-01-10 09:31:39
回答 2查看 1.7K关注 0票数 1

假设我有一个表产品,我有3-4个其他表(评论、图片、订单等)连接到具有一对多关系的产品。

如何简单地从其他表(注释、图片、订单)中选择一个产品及其连接条目?

我试着使用左联接连接其他表,但是我得到了重复的条目。如果我想选择许多产品而不是一个,这也会变得更糟。

我还在考虑对每个相关表进行一个查询,但这不是太慢了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-10 09:40:47

如果我正确地理解了你,你就会得到一个产品4的评论,比如10张图片和5个订单,如果你做了一个左连接,你就会得到很多重复的评论,图片和订单的4*10*5=200结果。但是您只需要每条评论、图片和顺序一行。

您将需要对每个相关表进行单独的查询。如果有办法解决这个问题,它将比单独的解决方案更加复杂和缓慢。

票数 1
EN

Stack Overflow用户

发布于 2014-01-10 09:41:27

您没有得到重复的行,而是得到了执行1到多个联接的正确结果。

阅读:operators http://dev.mysql.com/doc/refman/5.0/en/join.html

如果您希望每个产品条目有一行,请考虑使用聚合函数。

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

代码语言:javascript
复制
select product.id, product.name, group_concat(comment.text), avg(rating.value)
from product
left join comment on comment.product_id=product.id
left join rating on rating.product_id=product.id
group by product.id, product.name
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21040547

复制
相关文章

相似问题

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