基本上我想显示来自UserName
的{{1}},UserEmail
和来自td_users
的相同UserEmail
的行。我的表结构如下所示
表td_users
td_add_service
id是两个表的主键
我想显示像
这样的数据id | UserName | UserEmail|
------------------------------
1 | abdul | abdul@gmail.com
------------------------------
2 | Rahim | rahim@gmail.com
------------------------------
3 | Karim | karim@gmail.com
------------------------------
table td_add_service
---------------------------------------------------
id | serviceName | serviceDeatails | UserEmail|
------------------------------------------------------
1 | Servi1 | testserviceone | abdul@gmail.com
--------------------------------------------------------------
2 | Servi11 | testserviceonev | rahim@gmail.com
---------------------------------------------------------------
3 | Servi111 | testserviceone1 | karim@gmail.com
---------------------------------------------------------------
4 | Servi111 | testserviceone2 | karim@gmail.com
---------------------------------------------------------------
我可以从一个表中检索数据,也可以从两个表中检索数据但不能显示计数数据。
答案 0 :(得分:1)
随时使用带有int参数的关系表 但是没有nchar例如你的表与电子邮件的关系 - 这是char列
create table #td_users
(id int not null identity(1,1),
usename nchar(10),
email nchar(20)
)
create table #td_add_service
(id int not null identity(1,1),
serviceName nchar(10),
serviceDeatails nchar(20),
UserEmail nchar(20)
)
insert into #td_users(usename,email)
values
('abdul','abdul@gmail.com'),
('Rahim ','rahim@gmail.com'),
('Karim ','karim@gmail.com');
insert into #td_add_service(serviceName,serviceDeatails,UserEmail)
values
('Servi1','testserviceone','abdul@gmail.com'),
('Servi11','testserviceonev','rahim@gmail.com'),
('Servi111','testserviceone1','karim@gmail.com'),
('Servi111','testserviceone2','karim@gmail.com');
select tu.usename,
td.UserEmail,
count(td.serviceDeatails) [No of service] from #td_add_service td left join #td_users tu
on td.UserEmail=tu.email
group by tu.usename,td.UserEmail order by 3
usename UserEmail No of service
abdul abdul@gmail.com 1
Rahim rahim@gmail.com 1
Karim karim@gmail.com 2
答案 1 :(得分:0)
SELECT `td_users`.`UserName` AS Username, `td_users`.`UserEmail` AS UserMail, t2.countgroups AS NoOfServices FROM `td_users` LEFT OUTER JOIN (SELECT `id`,COUNT(*) AS countgroups FROM `td_add_service` GROUP BY `UserEmail`) t2 ON `td_users`.`id` = t2.`id`
我认为这就是你要求的。