34,590
社区成员
发帖
与我相关
我的任务
分享
select a.GroupName, isnull(count(1) ,0) '数量'
from GroupMember a
left join Group b on a.ID=b.GroupID
group by a.GroupName
CREATE TABLE [Group]
(
ID INT ,
GRoupName varchar(10) ,
)
INSERT INTO [Group]
SELECT 159,'用户' UNION ALL
SELECT 160, '户口' UNION ALL
SELECT 162, 'dsfds'
CREATE TABLE GroupMember
(
GroupID INT,
Username varchar(10),
[power] INT,
)
INSERT INTO [GroupMember]
SELECT 160,'test1',1 UNION ALL
SELECT 160, 'cai',1 UNION ALL
SELECT 160, 'wxh',0 UNION ALL
SELECT 160, 'admin',0 UNION ALL
SELECT 159, 'test1',0 UNION ALL
SELECT 159, 'cai',1 UNION ALL
SELECT 159, 'wxh',0 UNION ALL
SELECT 159, 'admin',1
select b.GRoupName,count(1)
from GroupMember a
left join [Group] b on b.ID=a.GroupID
group by b.GRoupName
/*
GRoupName
---------- -----------
户口 4
用户 4
(2 行受影响)
*/
--不要用IN,会影响到速度的,这样
--power是什么意思?
select ID , GRoupName ,用户数量=(select count(1) from GroupMember where GroupID=a.GroupID) from [group] a
if object_id('[group]') is not null drop table [group]
go
create table [group]([ID] int,[GRoupName] varchar(10))
insert [group] select 159,'用户'
union all select 160,'户口'
union all select 162,'dsfds'
go
if object_id('GroupMember') is not null drop table GroupMember
go
create table GroupMember([GroupID] int,[Username] varchar(10),[power] int)
insert GroupMember select 160,'test1',1
union all select 160,'cai',1
union all select 160,'wxh',0
union all select 160,'admin',0
union all select 159,'test1',0
union all select 159,'cai',1
union all select 159,'wxh',0
union all select 159,'admin',1
go
select *,cnt=(select count(1) from GroupMember where groupid=t.id) from [group] t
/*
ID GRoupName cnt
----------- ---------- -----------
159 用户 4
160 户口 4
162 dsfds 0
(3 行受影响)
*/
-->> Author: 让你望见影子的墙(HEROWANG)生成测试数据 Date:2009-04-24 10:57:19
IF OBJECT_ID('[group]') IS NOT NULL
DROP TABLE [group]
Go
CREATE TABLE [group](ID INT,GRoupName NVARCHAR(5))
Go
INSERT INTO [group]
SELECT 159,'用户' UNION ALL
SELECT 160,'户口' UNION ALL
SELECT 162,'dsfds'
GO
SELECT * FROM [GROUP]
-->> Author: 让你望见影子的墙(HEROWANG)生成测试数据 Date:2009-04-24 10:58:07
IF OBJECT_ID('GroupMember') IS NOT NULL
DROP TABLE GroupMember
Go
CREATE TABLE GroupMember(GroupID INT,Username NVARCHAR(5),power INT)
Go
INSERT INTO GroupMember
SELECT 160,'test1',1 UNION ALL
SELECT 160,'cai',1 UNION ALL
SELECT 160,'wxh',0 UNION ALL
SELECT 160,'admin',0 UNION ALL
SELECT 159,'test1',0 UNION ALL
SELECT 159,'cai',1 UNION ALL
SELECT 159,'wxh',0 UNION ALL
SELECT 159,'admin',1
GO
SELECT * FROM GROUPMEMBER
select a.id,count(*) from [group] a join [GroupMember] b on a.id=b.GroupID group by a.id
id (无列名)
159 4
160 4
select A.GroupName, Count(B.GroupID) as cnt
from [Group] A
left join GroupMember B
on A.ID=B.GroupID
group by A.GroupName
--power是什么意思?
select ID , GRoupName ,用户数量=(select count(1) from GroupMember where GroupID=a.GroupID) from [group] a
select *,cnt=(select count(1) from GroupMember where groupid=t.id) from [group] t
select a.GroupName,count(1)
from GroupMember a
left join Group b on a.ID=b.GroupID
group by a.GroupName
select ID,GRoupName,COUNT(*) AS NUM
from [Group] g join GroupMember m on g.id=m.GroupID
group by ID,GRoupName