易截截图软件、单文件、免安装、纯绿色、仅160KB

关于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,今天算是复习了一下。很不错~~~~


相关文档:

DBA常用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 ......

SQL:如何把多行查询结果,作为一行返回

CREATE    FUNCTION dbo.UF_GetInvoiceSerials( @bizCode VARCHAR(10))
   RETURNS VARCHAR(100)
AS
BEGIN
   DECLARE @ret AS VARCHAR(1000)
   SELECT @ret=Coalesce(@ret + ', ','') +
         CASE e.ID
     ......

oracle比较快的分页sql

 方案1 适用于oracle9i以上!
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
方案2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1  order by msgid desc) A WHERE ROWNUM < ......

sql server 2000的分页存储过程

 存储过程getRecordfromPage的内容
//getRecordfromPage.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getRecordfromPage]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[getRecordfromPage]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
G ......

OM裡保留記錄備份SQL

 First:
create table gobo.gobo_om_reservations_2008b as
select * from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
delete from gobo_om_reservations
where to_char(CREATION_DATE,'yyyy')<'2008'
commit
After 2009Year:
create table gobo.gobo_om_reservations_????b as ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号