sql语句多表查询,我是已经查询出一张表的数据,但想通过STCD字段相关联的另一张表的数据的两个字段也显示进来,一下是我已查询到的语句:
select top 5 STCD,sum(DRP) as DRP_SUM from RWDB.dbo.ST_PPTN_R where TM >= DATEADD(hour,-1,GETDATE()) group by STCD order by 2 desc
下图是另外一张表需要插进来的字段和结构:
select
top 5 r.STCD,sum(r.DRP) as DRP_SUM ,b.STNM,b.STLC
from
RWDB.dbo.ST_PPTN_R r left join dbo.ST_STBPRP_B b
on
r.STCD=b.STCD
where
r.TM >= DATEADD(hour,-1,GETDATE())
group by r.STCD
order by r.2 desc
select t1.*,t2.STNM,t2.STLC from (
select top 5 STCD,sum(DRP) as DRP_SUM from RWDB.dbo.ST_PPTN_R where TM >= DATEADD(hour,-1,GETDATE()) group by STCD order by 2 desc
) as t1 left join RWDB.dbo.ST_STBPRP_B t2 on t1.STCD=t2.STCD order by t1.DRP_SUM desc
select
top 5 r.STCD,sum(r.DRP) as DRP_SUM ,b.STNM,b.STLC
from
RWDB.dbo.ST_PPTN_R r left join RWDB.dbo.ST_STBPRP_B b
on
r.STCD=b.STCD
where
r.TM >= DATEADD(hour,-1,GETDATE())
group by r.STCD,b.STNM,b.STLC
order by r.DRP_SUM desc
join
select top 5 STCD
,B.STNM,B.STLC,sum(DRP) as DRP_SUM
from RWDB.dbo.ST_PPTN_R
left join RWDB.dbo.ST_STBPRP_B B on R.STCD =B.STCD
where TM >= DATEADD(hour,-1,GETDATE())
group by STCD,B.STNM,B.STLC
order by 2 desc
左连接进行查询,以左表为主表,右表不存在的时候为null