Sql server 如何使用SQL Select查询从两个表中获取不同的数据
如何使用SQL Select查询从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。以下是两个表格。表_UserInformation是基本的注册表,登录后他可以添加许多创新,但只注册一个电子邮件id 表2用户信息Sql server 如何使用SQL Select查询从两个表中获取不同的数据,sql-server,sql-server-2008,Sql Server,Sql Server 2008,如何使用SQL Select查询从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。以下是两个表格。表_UserInformation是基本的注册表,登录后他可以添加许多创新,但只注册一个电子邮件id 表2用户信息 Name Email mobile mazhar mazar@gmail.com 720000000 rahul rahul@gmail.com 992000000 raj raj@gmail.
Name Email mobile
mazhar mazar@gmail.com 720000000
rahul rahul@gmail.com 992000000
raj raj@gmail.com 700000000
表11创新
Email Data1 Data2
mazar@gmail.com aim to achive LD NA
mazar@gmail.com Search for LD NA
rahul@gmail.com mind tech Techno
我想知道有多少用户开始创新计数和细节,如下面2个输出需要
counts
2
Name Email mobile
mazhar mazar@gmail.com 720000000
rahul rahul@gmail.com 992000000
您可以使用distinct count和exists来获取这些查询 计数:
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)
尝试下面的查询,这将为您提供所需的输出,正如您所提到的问题
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
您可以尝试以下方法:
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请尝试使用以下代码进行所需输出:
DECLARE @Table_UserInformation TABLE(Name VARCHAR(100),Email VARCHAR(100),mobile VARCHAR(100))
INSERT INTO @Table_UserInformation VALUES
('mazhar','mazar@gmail.com','720000000'),
('rahul','rahul@gmail.com','992000000'),
('raj','raj@gmail.com','700000000')
DECLARE @Table_Innovation TABLE(Email VARCHAR(100),DATA1 VARCHAR(100),DATA2 VARCHAR(100))
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')
SELECT
COUNT(DISTINCT Email) AS COUNTS
FROM
@Table_Innovation
SELECT
DISTINCT T1.Name,T1.Email,T1.mobile
FROM
@Table_UserInformation T1 INNER JOIN @Table_Innovation T2 ON T1.Email=T2.Email
有人需要帮助吗?我需要两个的innovaiton计数@Gaurav Rajputi已经编辑了我上面的答案,现在您有两个单独的查询和一个查询来获得结果。请理解我的问题@k4ckr31z