2 qq 32224861 qq_32224861 于 2016.02.18 21:02 提问

MySQL中关联查询两个表的问题,在线等!!!急急急

两个表的关联查询,却出现的笛卡尔积的问题,所以查出来的数据并不是我想要的
该怎么办呀

4个回答

caozhy
caozhy   Ds   Rxr 2016.02.18 21:08

你怎么查询的,关联的一侧不是主键或者唯一值,那么就是笛卡尔集。

caozhy
caozhy   Ds   Rxr 2016.02.18 21:09

换言之,如果是N:N查询,那么所有匹配的组合都会被查询出来。确保你的查询是1:N N:1或者1:1
如果你一侧不是1,那么可以用distinct或者group by先变成唯一的。

qq_32224861
qq_32224861 其中a和b两个表中的数据company_id都不是唯一的,变成唯一的不是就查出的数据不对了吗
接近 2 年之前 回复
qq_32224861
qq_32224861 select sum(a.discount_amount) as "a" , count(b.id) as "b" from a,b where a.company_id = b.company_id
接近 2 年之前 回复
qq_32224861
qq_32224861 回复caozhy: sql语句是这样的:
接近 2 年之前 回复
caozhy
caozhy 回复June君: 先用distinct或者group by先变成唯一的
接近 2 年之前 回复
qq_32224861
qq_32224861 其实两个表没什么关系,只不过我要做两个表的视图,关联的时候那个字段两边都是不唯一的,所以我不知道该怎么办了
接近 2 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.02.18 21:58

关联条件是如何做的 是不是有正确的join起来

qq_32224861
qq_32224861 select sum(a.discount_amount) as "a" , count(b.id) as "b" from a,b where a.company_id = b.company_id条件只有一个,而且两个表中都不是唯一的
接近 2 年之前 回复
u011375365
u011375365   2016.02.19 09:57

使用from a,b必然出现笛卡尔积.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!