LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1627|回复: 0

怎么解决多个表建立视图后的数据重复问题?

[复制链接]
发表于 2009-10-12 11:58:45 | 显示全部楼层 |阅读模式
有A、B、C、D四个表,B、C、D表中的记录都是A表中记录的属性。现在要建立一个视图,以实现分别查询出四个表中的需要的字段

我现在的方法是
建立视图AB       A left jion B
建立视图ABC     AB left join C
建立视图ABCD   ABC left join C

现在就从视图ABCD中查询

但有个问题,就是B、C、D表中都有多条记录与A表中的记录关联,这样,在视图ABCD中A表中的记录就有了多条记录。
比如:
B中与A相关的有2条,则视图AB中就有2条A的重复记录,这不影响查询
但如果C中也有与A相关的记录2条,则试图ABC中就会有4条A的重复记录,有2条B的重复记录
如果D表中也有与A相关的记录2条,则试图ABCD中就会有8条A的重复记录,有4条B的重复记录,有2条C的重复记录

这样就影响查询了。

如果使用distinct,又只会保留一条有关A的记录,B、C、D表中的于A有关的其它多条记录就查询不出来


大家是怎么解决这个问题的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表