如何使用从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。下表如下。Table_UserInformation是基本的登记表,登录后他可以添加许多创新,但注册只需一个电子邮件id。
Table_UserInformation
Name Email mobile
mazhar mazar@gmail.com 720000000
rahul rahul@gmail.com 992000000
raj raj@gmail.com 700000000
Table_Innovation
Email Data1 Data2
mazar@gmail.com aim to achive LD NA
mazar@gmail.com Search for LD NA
rahul@gmail.com mind tech Techno
我想知道有多少用户开始创新,计数和细节,如以下两个输出所需。
发布于 2017-03-30 10:16:47
对于这些查询,您可以使用不同的计数和存在。
数数:
select count(distinct Email) from Table_innovation
对于不同的用户
select * from Table_UserInformation t where exists (select 1 from Table_innovation i where i.email = t.email)
发布于 2017-03-30 10:33:41
尝试下面的查询,这将为您提供所需的输出,正如您所提到的。
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
输出
-----------------------------------------
--Name Email mobile COUNTS
-----------------------------------------
mazhar mazar@gmail.com 720000000 2
rahul rahul@gmail.com 992000000 1
-----------------------------------------
对这两种情况的单独查询:
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
输出
-----------------------
Email COUNTS
-----------------------
mazar@gmail.com 2
rahul@gmail.com 1
------------------------------------
Name Email mobile
------------------------------------
mazhar mazar@gmail.com 720000000
rahul rahul@gmail.com 992000000
发布于 2017-03-30 10:39:37
你可以试试这样的东西:
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
https://stackoverflow.com/questions/43114710
复制相似问题