两个表上的PL / SQL SELECT

时间:2015-11-02 13:44:30

标签: mysql sql select

我有两张桌子。其中一个包含userData,另一个包含链接到组中用户的userGroup。 像用户这样的手段可以在0个或更多组中。

我试图使用如下所示的查询来获取此列:

SELECT distinct(a.userID), a.userName, Count(b.userID_FID)
FORM userData a,
     userGroup b
WHERE a.userID = b.userID_FID

但不知何故,Count部分给我一个错误的数字。

2 个答案:

答案 0 :(得分:1)

SELECT max(a.userName), Count(distinct b.userID_FID)
FROM userData a
JOIN userGroup b
ON a.userID = b.userID_FID
GROUP BY a.userID

我的建议是不要使用来自

的许多表

答案 1 :(得分:0)

这将为您提供每个用户所在的组数。 要构建测试场景,请使用:
    创建表#groups     (userID_FID int     ,group int     );

create table #user
(userID int);


insert into #groups values (1, 5);
insert into #groups values (1, 2);
insert into #groups values (1, 3);
insert into #groups values (1, 4);

insert into #groups values (2, 3);
insert into #groups values (2, 4);

insert into #groups values (3, 1);
insert into #groups values (3, 5);

insert into #user values (1);
insert into #user values (2);
insert into #user values (3);

select * from #groups;
select * from #user;

根据上面的测试场景,这件作品是您想要的查询:

select userid, count(*) as NumberOfGroups
from #groups g
, #user u
where g.userID_FID = u.userID
group by userID;