SELECT A.用户,B.权限,ISNULL)C.是否有权,'否') AS 是否有权
FROM
用户表 AS A CROSS JOIN 权限表 AS B LEFT JOIN 权限分配表 C ON
A.用户编号=C.用户编号 AND B.权限编号=C.权限编号 AND C.是否有权='是'
FROM
用户表 AS A CROSS JOIN 权限表 AS B LEFT JOIN 权限分配表 C ON
A.用户编号=C.用户编号 AND B.权限编号=C.权限编号 AND C.是否有权='是'
解决方案 »
- 请教 统计各个论坛版块每天发帖量的表设计
- 各位,求助,大数据量,select语句
- 周期性统计,sql语句如何写?
- mysql备份数据库
- 成功Sql2000reporting service 迁移到Sql2005reporting service
- 怎样用round函数实现标准的统一的小数点后面两位的显示啊?
- 将sql server导入到access时自动标识列的问题
- 没分了!保存中间值的问题
- 比较困难:如何精确的知道用户在数据库中锁定了我的那张表的那些记录!
- 自己新建的存储过程,不知道哪里出现了问题会自动删除,请告诉指导
- HELP~~SQL Server存储进程一个小问题,在线等候中...
- insert操作时,Inserted表中的记录数?
select 用户 from 用户表 权限分配表 where 用户表.用户编号=权限分配表.用户编号
SELECT A.用户,B.权限,ISNULL(C.是否有权,'无') AS 是否有权
FROM
用户表 AS A CROSS JOIN 权限表 AS B LEFT JOIN 权限分配表 C ON
A.用户编号=C.用户编号 AND B.权限编号=C.权限编号 AND C.是否有权='有'
CREATE TABLE TA(ID INT,NAME NVARCHAR(10))CREATE TABLE TB(ID INT,NAME NVARCHAR(10))CREATE TABLE TC(AID INT,BID INT,QX NVARCHAR(10))INSERT TA VALUES(
1, N'小王')
INSERT TA VALUES(
2, N'小张')INSERT TB VALUES(
1, N'开机')
INSERT TB VALUES(
2, N'关机')
INSERT TB VALUES(
3, N'重启')
INSERT TB VALUES(
4, N'格式化')INSERT TC VALUES(
1, 1, N'有')
INSERT TC VALUES(
2, 4, N'有')
INSERT TC VALUES(
2, 3, N'无')SELECT A.NAME,B.NAME AS NAME1,ISNULL(C.QX,N'无') AS QX
FROM
TA AS A CROSS JOIN TB AS B LEFT JOIN TC C ON
A.ID=C.AID AND B.ID=C.BID AND C.QX=N'有'结果:
小王 开机 有
小王 关机 无
小王 重启 无
小王 格式化 无
小张 开机 无
小张 关机 无
小张 重启 无
小张 格式化 有
SELECT A.用户,B.权限,ISNULL(C.是否有权,'无') AS 是否有权
FROM
用户表 AS A,权限表 AS B,权限分配表 C
WHERE A.用户编号*=C.用户编号 AND B.权限编号*=C.权限编号
加一个isnull处理权限分配表中没有的项目.
Yang 已经写出来了!