我有3张表第一张有一条单位叫密云公司的,第二张表没有密云公司,第三张表有密云公司,
这三张表用单位做全连接,连接顺序时1连接2连接3,结果时出现两个密云公司。
有一个解决方法就是1和2 连接再把1和2连接的结果在与3连接,这样就行了。但是很麻烦,请问大牛们还有其他方法吗?
这三张表用单位做全连接,连接顺序时1连接2连接3,结果时出现两个密云公司。
有一个解决方法就是1和2 连接再把1和2连接的结果在与3连接,这样就行了。但是很麻烦,请问大牛们还有其他方法吗?
from tab_a A,tab_b B,tab_c C
where A.id = B.id(+)
and A.id = C.id(+)出现2个密云公司应该不关全连接的事吧,而是连接条件不够严谨?
from tab_a A,tab_b B,tab_c C
where A.id = B.id(+)
and A.id = C.id(+)
FULL OUTER JOIN BYQ
ON BYQ.DYDJ = XL.DYDJ
FULL OUTER JOIN DL
ON DL.DYDJ = BYQ.DYDJ
FULL OUTER JOIN GL
ON GL.DYDJ = DL.DYDJ
先这样的查询,这4张表就有两个字段电压等级和数量
select ... FROM XL
FULL OUTER JOIN BYQ
ON BYQ.DYDJ = XL.DYDJ
FULL OUTER JOIN DL
ON DL.DYDJ = XL.DYDJ
FULL OUTER JOIN GL
ON GL.DYDJ = XL.DYDJ
我想按单位统计
线路,变压器,断路器,隔离开关这四个的
运行数、按工作内容分的清扫等等
个数
比如:
| 线路 |
单位 | 清扫 运行数 |顺义供电公司| 3 | 5 |
线路,变压器,断路器,隔离开关这四个查询的单位不全,不知道那个多那个少!
其实也是数据不全所造成的,他们几个应能查处所有单位。
但是就这情况怎么解决啊!
这线路,变压器,断路器,隔离开关是视图,以前不是的时候很慢。
这几个视图的字段就是单位和运行数,清扫数啊等等
遇到的情况是:假如线路有平谷供电公司单位,而变压器没有,短路器又有,这只是一种情况,
关联顺序就是线路,变压器,断路器,结果出现两个平谷供电公司单位。
我知道的解决办法是先用线路,变压器全连接,把他们的结果在和断路器全连接这样就好了 。
但是这样对3个表的全连接的代码量可以接受,如果是4,5张怎么办?
有没有其他方法。
8楼的distinct不行,数据不知道那个重复的是对的。
看了楼主的描述,觉得楼主需要有这么一张表,单位字典表。不知道楼主数据库中有没有这张表?如果没有就只能为这个表建立一个视图,使用线路、变压器、断路器、隔离开关4个表中单位的合集做为该视图的数据。
然后就可以使用单位表做为主表,线路、变压器等表做为从表,查询SQL如下:select ... FROM 单位表
FULL OUTER JOIN XL
ON XL.DYDJ = 单位表.DYDJ
FULL OUTER JOIN BYQ
ON BYQ.DYDJ = 单位表.DYDJ
FULL OUTER JOIN DL
ON DL.DYDJ = 单位表.DYDJ
FULL OUTER JOIN GL
ON GL.DYDJ = 单位表.DYDJ