首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

两表查询,昏了!该如何解决

2012-01-13 
两表查询,昏了!SQL codezbcol1col2col3je1je2je3a1b1c1101010a2b2c2544a3b3c3101010....jhcol1col2col3jhj

两表查询,昏了!

SQL code
zbcol1    col2    col3   je1  je2  je3a1      b1       c1    10   10   10a2      b2       c2    5    4     4a3      b3       c3    10   10    10....jhcol1    col2    col3   jhje a1      b1       c1    2 a2      b2       c2    3    ....需求:tabcol1    col2    col3   je1  je2  je3   jhjea1      b1       c1    10   10   10    2a2      b2       c2    5    4     4    3a3      b3       c3    10   10    10   0....zb表的数据多余jh表,我用left join 来连接,老是数据有问题。   


[解决办法]
SQL code
select a.*,isnull(b.jhje,0) as jhjefrom zb a left join jh b on a.col1 = b.col1 and a.col2 = b.col2 and a.col3 = b.col3
[解决办法]
SQL code
create table zb(col1 varchar(10),col2 varchar(10),col3 varchar(10),je1 int,je2 int,je3 int)insert into zb select 'a1','b1','c1',10,10,10insert into zb select 'a2','b2','c2',5, 4,  4insert into zb select 'a3','b3','c3',10,10, 10create table jh(col1 varchar(10),col2 varchar(10),col3 varchar(10),jhje int)insert into jh select 'a1','b1','c1',2 insert into jh select 'a2','b2','c2',3goselect a.*,isnull(b.jhje,0)jhje from zb a left join jh b on a.col1=b.col1 and a.col2=b.col2 and a.col3=b.col3/*col1       col2       col3       je1         je2         je3         jhje---------- ---------- ---------- ----------- ----------- ----------- -----------a1         b1         c1         10          10          10          2a2         b2         c2         5           4           4           3a3         b3         c3         10          10          10          0(3 行受影响)*/godrop table zb,jh
[解决办法]
探讨
SQL code

select a.*,isnull(b.jhje,0) as jhje
from zb a left join jh b on a.col1 = b.col1 and a.col2 = b.col2 and a.col3 = b.col3

[解决办法]
两个表的数据不一样吧!如果你left join后select里有汇总,注意看下是否是主表也就是left join左边表的汇总,会出现重复的。
[解决办法]
两个表的数据量不一样,sum结果还是不一样的, tb 和 jh 表应该不是完全相同的吧!
[解决办法]
探讨
引用:

SQL code
create table zb(col1 varchar(10),col2 varchar(10),col3 varchar(10),je1 int,je2 int,je3 int)
insert into zb select 'a1','b1','c1',10,10,10
insert into zb select '……

我不知道怎么数据有问题:
我是按照你们上面的来操作,将数据放在tb里
select sum(jhje) from jh 的金额

select sum(jhje) from tb 的金额怎么都不一样啊?

[解决办法]
你想做什么呢?如果是按开始说的,语句里的表换成你的表应该可以了啊!

left join的条件注意下,如果是先筛选后连接,那就把条件放在 on 后边,如果是连接后筛选那就放在where后边。
[解决办法]
SQL code
select t1.col1,       t1.col2,       t1.col3,       t1.je1,       t1.je2,       isnull(t2.jhje,0) je3from zb t1 left join jh t2 on t1.col1 = t2.col1 andt1.col2 = t2.col2 andt1.col3 = t2.col3
[解决办法]
看不懂啊
1111
[解决办法]
探讨
我不知道怎么数据有问题:
我是按照你们上面的来操作,将数据放在tb里
select sum(jhje) from jh 的金额

select sum(jhje) from tb 的金额怎么都不一样啊?

热点排行