关于SQL语句
今天写网站的时候很囧啊,发现查找用户权限的时候无缘无故的同一个权限重复出现很多次
修改后的SQL语句如下
SELECT
node
.
id
,
node
.
name
,
access
.
role_id
from
think_role_user
AS
user
,
think_access
AS
access
,
think_node
AS
node
WHERE
user
.
user_id
=
5
AND
access
.
role_id
=
user
.
role_id
AND
access
.
level
=
3
AND
access
.
node_id
=
node
.
id
LIMIT
0
,
30
其中NODE是权限节点,ACCESS是权限和用户所在组对应的节点,USER是用户与其所在组之间的表,这样写出来的SQL语句就能够正确查询了
我发现我错误的地方是多引入了另一个无关的表,就是说from里面多出来另一个表,一开始我以为没有差别,后来才发现多一个那样的表,同一个查询结果就会多出那个表的节点个数倍。。。
恩,很久没有写过SQL,今天算是复习了一下。很不错~~~~
相关文档:
--监控索引是否使用 alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name;
--求数据文件的I/O分布 select df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetim from v$filestat fs,v ......
第一点:
使用视图,可以定制用户数据,聚焦特定的数据。
解释:
在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话,
采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没
有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视
图,以后他在查询数据时,只需se ......
方法一:
DB1 tb1
DB2 tb2
选择DB1 到表的列表那里
选择tb1表 右键 所有任务 数据导出
下一步 选择你要导出的数据库DB1 下一步 选择你要导入的数据库DB2
下一步 选择你要导的表(前面画勾)tb1, 后面对应的是新数据库的表名tb2(默认是相同表名,可修改) 下一步 完了 ......
select d.code,d.name, sum(w.weight) weight,round(avg(w.price),2) price,sum(w.money) money
from weight_info w left outer join t_dict d on w.productcode=d.code left outer join t_balancecode b on w.balancecode=b.balancecode where 1=1 and w.operdate>TO_TIMESTAMP('2009-11-2 04:12:32.0', ' ......
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
fr ......