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

关联二个表的操作.该怎么处理

2012-03-28 
关联二个表的操作.SELECTA.ID, A.userID, A.PlanName, A.Count, B.clickCount, B.clickMoneyCountFROMdbo.

关联二个表的操作.
SELECT A.ID, A.userID, A.PlanName, A.Count, B.clickCount, B.clickMoneyCount
FROM dbo.Plan AS A INNER JOIN
(SELECT SUM(clickCount) AS clickCount, SUM(clickMoneyCount) AS clickMoneyCount, ID
FROM dbo.Click GROUP BY ID) AS B ON A.ID = B.ID


要是这样写的话。。。
数据:: a表中有三条记录...(1,'张三',‘计划1','5')
  ...(2,'张三',‘计划2','6')
  ...(3,'张三',‘计划3','7')

  b表中只有二条记录 (,......,1,20,20)
  (,......,2,20,20)

这样写的话,会把a表中的 属于 '张三'userID ID=3 记录 ...(3,'张三',‘计划3','7') 给漏掉了.

要如何改使的。。A表中 userID='张三' 记录全显示。。再关联B表中的B.clickCount, B.clickMoneyCount,并且是求和的.

[解决办法]
INNER JOIN改成LEFT JOIN,然后带B.的都加ISNULL
[解决办法]

SQL code
isnull
[解决办法]
select a.* , isnull(b.col , 0)
from a left join b on a.id = b.id
[解决办法]
SQL code
SELECT      A.ID, A.userID, A.PlanName, A.Count, ISNULL(B.clickCount,0),ISNULL( B.clickMoneyCount,0) FROM    dbo.Plan AS A LEFT JOIN  (SELECT  SUM(clickCount) AS clickCount, SUM(clickMoneyCount) AS clickMoneyCount, ID FROM      dbo.Click  GROUP BY ID) AS B ON A.ID = B.ID
[解决办法]
探讨
SQL codeSELECT
A.ID, A.userID, A.PlanName, A.Count,ISNULL(B.clickCount,0),ISNULL( B.clickMoneyCount,0)FROM
dbo.PlanAS ALEFTJOIN
(SELECTSUM(clickCount)AS clickCount,SUM(clickMoneyCount)AS clickMoneyCount, IDFROM
dbo.ClickGROUPBY ID)AS BON A.ID= B.ID

热点排行