加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 结合两个select语句的结果

发布时间:2020-12-12 08:44:35 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用T-SQL与ASP.NET,而c#和我是SQL的新手. 我想知道如何组合两个查询的结果 查询1: SELECT tableA.Id,tableA.Name,[tableB].Username AS Owner,[tableB].ImageUrl,[tableB].CompanyImageUrl,COUNT(tableD.UserId) AS NumberOfUsers FROM tableD RIGHT
我正在使用T-SQL与ASP.NET,而c#和我是SQL的新手.

我想知道如何组合两个查询的结果

查询1:

SELECT tableA.Id,tableA.Name,[tableB].Username AS Owner,[tableB].ImageUrl,[tableB].CompanyImageUrl,COUNT(tableD.UserId) AS NumberOfUsers
 FROM tableD RIGHT OUTER JOIN 
         [tableB] INNER JOIN
         tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id
 GROUP BY tableA.Name,[tableB].Username,[tableB].CompanyImageUrl

QUERY2:

SELECT tableA.Id,COUNT([tableC].Id) AS NumberOfPlans
 FROM   [tableC] RIGHT OUTER JOIN
           tableA ON [tableC].tableAId = tableA.Id
 GROUP BY tableA.Id,tableA.Name

任何帮助将不胜感激.
提前致谢

解决方法

您可以使用 Union.

这将以单独的行返回查询的结果.

首先,您必须确保两个查询返回相同的列.

那你可以做:

SELECT tableA.Id,COUNT(tableD.UserId) AS Number
FROM tableD 
RIGHT OUTER JOIN [tableB] 
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id 
GROUP BY tableA.Name,[tableB].CompanyImageUrl

UNION

SELECT tableA.Id,'' AS Owner,'' AS ImageUrl,'' AS CompanyImageUrl,COUNT([tableC].Id) AS Number
FROM 
[tableC] 
RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id GROUP BY tableA.Id,tableA.Name

如前所述,两个查询返回完全不同的数据.如果两个查询返回可能被认为是相似的数据,您可能只想这样做.

所以

您可以使用Join

如果两个查询之间共享一些数据.这将把这两个查询的结果都放在id中加入的单个行中,这可能是你想在这里做的更多的事情

你可以做:

SELECT tableA.Id,COUNT(tableD.UserId) AS NumberOfUsers,query2.NumberOfPlans
FROM tableD 
RIGHT OUTER JOIN [tableB] 
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id 


INNER JOIN 
  (SELECT tableA.Id,COUNT([tableC].Id) AS NumberOfPlans 
   FROM [tableC] 
   RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id 
   GROUP BY tableA.Id,tableA.Name) AS query2 
ON query2.Id = tableA.Id

GROUP BY tableA.Name,[tableB].CompanyImageUrl

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读