如何避免查询结果出现笛卡尔积?

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:50:54
我有两个表想做联合查询,两个表中有相同字段,现在想通过相同字段做查询条件,把两个表中的另外两列做一个乘积查询。可是查出来的结果是笛卡尔积的形式。有好多数据是不需要的。请问怎么样避免这种情况出现?非常急!!

1、可以想象你表中相同的字段应该是多对多的关系,只要把其中一个表里的数据改成没有重复的就可以了,如果允许的话。

2、如果不允许该数据,那就要麻烦些了,你要人为的再找几个字段,或者再添加几个新字段,是的这两个表满足上面第一种情况。

************
补充:
最好是在设计表的时候避免,把两个表关联的字段,在其中一个表中让他作为主键出现,这样一劳永逸。
************

---
以上,希望对你有所帮助。

如果要压缩重复的话用distinct;你也可以先将两个表中需要的数据通过子查询查出来,然后将这些子查询当作表来连接。(有时候一时想不到解决方法,用子查询不失为一个好办法。)

至于你具体的情况,因为你的表述我实在看不出来是具体的意思是什么,也只能泛泛的给你点建议了,希望对你有用

出现笛卡尔积是你的连接条件写的不正确