首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用从两个表中获取不同的数据

如何使用从两个表中获取不同的数据
EN

Stack Overflow用户
提问于 2017-03-30 10:08:09
回答 4查看 62关注 0票数 0

如何使用从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。下表如下。Table_UserInformation是基本的登记表,登录后他可以添加许多创新,但注册只需一个电子邮件id。

Table_UserInformation

代码语言:javascript
运行
复制
Name      Email             mobile
mazhar    mazar@gmail.com   720000000
rahul     rahul@gmail.com   992000000
raj       raj@gmail.com     700000000

Table_Innovation

代码语言:javascript
运行
复制
Email             Data1                Data2
mazar@gmail.com   aim to achive LD     NA
mazar@gmail.com   Search for LD        NA
rahul@gmail.com   mind tech            Techno

我想知道有多少用户开始创新,计数和细节,如以下两个输出所需。

  1. 输出:有多少用户根据电子邮件的需求数量开始创新。 数数2
  2. 输出:有多少用户根据电子邮件开始创新,需要用户的详细信息。 名称:电子邮件移动马扎尔mazar@gmail.com 720000000拉胡尔rahul@gmail.com 992000000
EN

回答 4

Stack Overflow用户

发布于 2017-03-30 10:16:47

对于这些查询,您可以使用不同的计数和存在。

数数:

代码语言:javascript
运行
复制
select count(distinct Email) from Table_innovation

对于不同的用户

代码语言:javascript
运行
复制
select * from Table_UserInformation t where exists (select 1 from Table_innovation i where i.email = t.email)
票数 0
EN

Stack Overflow用户

发布于 2017-03-30 10:33:41

尝试下面的查询,这将为您提供所需的输出,正如您所提到的。

代码语言:javascript
运行
复制
DECLARE @Table_UserInformation TABLE(Name  varchar(100),    Email         varchar(100),        mobile varchar(100))
DECLARE @Table_Innovation TABLE(Email  varchar(100),    DATA1         varchar(100),        DATA2 varchar(100))
INSERT INTO @Table_UserInformation VALUES
('mazhar',    'mazar@gmail.com',   '720000000'),
('rahul',    'rahul@gmail.com',   '992000000'),
('raj',       'raj@gmail.com',     '700000000')
INSERT INTO @Table_Innovation VALUES
('mazar@gmail.com',   'aim to achive LD',     'NA'),
('mazar@gmail.com',   'Search for LD',        'NA'),
('rahul@gmail.com',   'mind tech',            'Techno')
;WITH SAMPLEDATA
AS
(
SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email
)
SELECT T2.Name,T2.Email,T2.mobile,T1.COUNTS FROM SAMPLEDATA T1 JOIN     @Table_UserInformation T2 
ON T1.Email=T2.Email

输出

代码语言:javascript
运行
复制
-----------------------------------------
--Name  Email   mobile  COUNTS
-----------------------------------------
mazhar  mazar@gmail.com 720000000   2
rahul   rahul@gmail.com 992000000   1
-----------------------------------------

对这两种情况的单独查询:

代码语言:javascript
运行
复制
SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email

;WITH SAMPLEDATA
AS
(
SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email
)
SELECT T2.Name,T2.Email,T2.mobile FROM SAMPLEDATA T1 JOIN     @Table_UserInformation T2 
ON T1.Email=T2.Email

输出

代码语言:javascript
运行
复制
-----------------------
Email   COUNTS
-----------------------
mazar@gmail.com 2
rahul@gmail.com 1

------------------------------------
Name    Email   mobile
------------------------------------
mazhar  mazar@gmail.com 720000000
rahul   rahul@gmail.com 992000000
票数 0
EN

Stack Overflow用户

发布于 2017-03-30 10:39:37

你可以试试这样的东西:

代码语言:javascript
运行
复制
  SELECT  
   a.[Name]
  ,a.[Email]
  ,a.[Mobile]
  ,(select count(b.Email) from Table_Innovation as b where b.Email = a.Email)
    as 'Innovat ion Count'
 FROM Table_UserInformation as a

您的结果应该如下所示:结果

格里茨K4ckr31z

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43114710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档