读书人

多表联合查询的有关问题 高手请看!在

发布时间: 2012-01-10 21:26:51 作者: rapoo

多表联合查询的问题 高手请看!!!在线 等 !
SQL 语句如下:
select isnull(count(x.bit_id),0) from base_band x join base_series y on y.bit_bandid=x.bit_id
join base_modal z on z.bit_seriesid=y.bit_id
join veh_vehicle veh on veh.bit_carmodel = z.bit_id
join
(select xs.bit_customer_id from VEH_SaleOrder xs
union select jxs.bit_customerid from VEH_DealSellInfo jxs
) as hj
on hj.bit_customer_id=veh.bit_customer_id

我现在的问题是 其中 最后一个join 的子查询中的数据是应该是整个 查询结果的正确数据,但是 结果会多出 ,怎样让 最后一个join 之前的数据 和 子查询中的数据相吻合? 请高手帮忙!!

[解决办法]
create table #ta
(
[id] int not null
)

create table #tb
(
[id] int not null,
[name] varchar(10)
)

insert into #ta values(1)
insert into #ta values(1)
insert into #ta values(2)
insert into #ta values(2)

insert into #tb values(2, 'a ')
insert into #tb values(2, 'b ')

select #tb.[name] from #ta join #tb on #ta.[id]=#tb.[id]
drop table #ta
drop table #tb

对于#tb来说,它只有两条数据,但联合后的结果是四条,这不也是正常的吗

读书人网 >asp.net

热点推荐