0 0

这样的sql语句是否存在问题5

select * from (select * from xf_art where flag=3 order by add_time desc) a,(select id userid,username from xf_usr where flag!=9 ) u where a.xfuid=u.userid order by a.add_time desc
 
以上的sql语句是我一个已离职的同事写,运行正常,但是怎么看都觉得有点别扭,SQL语句这样的写法是否存在问题呢?问题再在哪里(我现在也说不出来,所以请教各位了)
2012年8月09日 08:18

9个答案 按时间排序 按投票排序

0 0

1.内连接就可以了,原来的写法会导致索引不可用
2.a表中的order by 是在是不需要,浪费性能

2012年8月16日 14:31
0 0

这样写不可能不存在问题。出现问题是迟早的事。
xf_art 和xf_usr 随着时间的推移,数据量逐渐增大,这句语句迟早跑不通的。

select * from xf_art a 
inner join xf_usr b
on a.xfuid = b.userid
and b.flag!=9
where a.flag=3
order by a.add_time desc 


但是具体哪个做主表要你自己判断。

2012年8月13日 02:03
0 0

sql 没问题,但是性能有问题, (select * from xf_art where flag=3 order by add_time desc) a,(select id userid,username from xf_usr where flag!=9 ) u 将导致这两个表的索引不生效,如果数据量大,性能会很差,可以改用modg或onlylau 的写法

2012年8月10日 12:14
0 0

from子查询,那俩括号内相当于两张表 a和u ,外面的select 直接从这两张表里取。

2012年8月09日 13:45
0 0

性能上是有一些问题,估计你的同事想使用内联
一般都是这样写的

select a.*,u.id userid,u.username from xf_arta a
inner join xf_usr u
on a.xfuid = u.id
and a.flag = 3
and u.flag != 9
order by a.add_time desc 

"inner join  on"中的关键字on
与where的区别:
on是用于局部的
where使用于全局的

2012年8月09日 11:40
0 0

如果不考虑性能的话,这是木有问题的。

2012年8月09日 11:15
0 0

语句是没问题

可能常见的是这种写法吧:
select * from xf_arta,xf_usr u
where a.xfuid=u.id
and a.flag = 3
and u.flag != 9
order by a.add_time desc

但是哪个性能好些,那就得具体环境具体对待

另外我觉得:(select * from xf_art where flag=3 order by add_time desc) a 这个子查询中的order by 没必要吧

2012年8月09日 09:47
0 0

语句没有问题。。
将两个查询的结果集a和u再做一次关联查询,就跟直接从两个table中关联查询是一样的意思。这就是所谓的子查询,你甚至可以嵌套多层子查询,都是一样的

2012年8月09日 09:45
0 0

语句没问题。。子查询

2012年8月09日 08:54

相关推荐

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    SQL 执行超长语句

    ### SQL执行超长语句详解 在数据库管理与开发过程中,编写SQL语句是必不可少的一环。...通过采取上述提到的一些策略和技术手段,可以有效缓解因超长SQL语句带来的问题与挑战,最终实现更高效的数据处理与分析能力。

    arcgis中的sql语句

    ### ArcGIS中的SQL语句详解 #### 一、SQL在ArcGIS中的角色与应用 SQL,全称为Structured Query Language,即结构化查询语言,是专为数据库设计的一种标准语言,用于管理和操作数据库中的数据。在ArcGIS环境中,SQL...

    sqlserver自动生成sql语句工具sqlserver转oracle

    本篇文章将详细探讨如何利用工具实现SQL Server自动生成SQL语句并转换到Oracle。 首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种...

    易语言动态拼接sql语句

    动态拼接SQL语句虽然灵活,但也存在SQL注入的风险。在易语言中,如果没有正确处理用户输入,恶意用户可能通过输入特殊字符构造有害的SQL命令。因此,使用动态SQL时,务必进行参数化查询或预编译语句,以防止SQL注入...

    ABAP SQL 语句 动态 操作

    需要注意的是,直接让用户输入SQL语句可能存在安全风险,例如SQL注入攻击。因此,在实际应用中,应限制可执行的SQL类型,或者使用预编译的语句( Prepared Statements)来提高安全性。 9. **动态执行ABAP源代码**...

    SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf

    SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...

    SQL语句语法

    SQL语句是结构化查询语言(Structured Query Language)的简称,是用于管理和处理关系数据库的标准语言。本篇文章将深入探讨SQL语句的基本语法,包括数据定义、数据操作、实用工具、事务处理和锁定、数据库管理、...

    SQLServer数据库表中数据导出成SQL语句工具

    针对这个需求,存在一种名为“SQLServer数据库表中数据导出成SQL语句工具”的实用程序,它能够帮助我们高效地完成这项任务。这个工具通常以MHT(Multi-Part/Related)格式提供,这是一种单一文件Web页面存储格式,...

    mybatis直接执行sql语句后续之一

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据访问和映射机制。这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。...

    SQL语句在审计

    SQL语句在审计中的应用 SQL语句是数据库管理系统中使用最频繁的语言,SELECT语句是SQL语言中使用频率最高的语句。SELECT语句的作用是让数据库服务器根据用户的要求搜索出所需要的信息资料,并按规定的格式进行整理...

    Sql语句收藏 Sql语句收藏

    ### SQL语句一 #### 原始SQL语句: ```sql select *, (select count(0) from [picture] where album_id = [album].id) as piccount From [Album] Where id in (5,6,8,1,3,4) orderby charindex(',' + ltrim(rtrim...

    SQL语句教程 写法大全

    同时,本教程还涵盖了 SQL 高级知识,如 Top 语句、Like 语句、通配符、In 语句、Between 语句、Aliases 语句、Join 语句、Inner Join 语句、Left Join 语句、Right Join 语句、Full Join 语句、Union 语句、Select ...

    SQL语句执行过程详解

    服务器接收到SQL语句后,首先会查询高速缓存(library cache),来查看是否存在相同的语句执行计划,如果存在,服务器可以直接使用缓存中的执行计划,从而避免后续的查询开销,提升效率。如果在缓存中找不到,服务器...

    SQL语句生成及分析器

    此外,生成器通常还具备分析功能,可以检查生成的SQL语句是否存在语法错误,或者是否符合数据库的最佳实践。这有助于确保查询的正确性和效率。分析器可能会提供性能提示,如建议使用索引或优化查询结构以减少查询...

    SQL语句基础PPT

    通过实践编写SQL语句,解决实际问题,可以加深对SQL的理解。此外,了解不同数据库系统(如MySQL、Oracle、SQL Server等)之间的差异也很重要,这有助于选择最适合项目需求的数据库系统。最后,不断关注SQL的新特性和...

    生成SQL语句工具

    - **查询分析器**:检查SQL语句的语法和逻辑,提前发现潜在问题。 - **性能优化**:分析查询执行计划,提供改进建议,以提高查询速度。 - **版本控制**:保存和追踪SQL脚本的历史版本,方便回滚和比较。 - **数据...

    Mysql运行SQL语句中文乱码问题的解决方法

    ### MySQL运行SQL语句中文乱码问题的解决方法 在MySQL数据库中运行包含中文字符的SQL语句时,经常会遇到中文显示为乱码的问题。这一现象不仅降低了开发效率,还可能导致数据错误。本文将详细介绍如何彻底解决MySQL...

    SQL语句手册.chm

    在“SQL语句手册.chm”中,我们可以期待找到关于SQL的全面介绍,包括其基本概念、语法以及如何执行各种操作。下面我们将深入探讨SQL的关键知识点。 1. **SQL基础**: SQL的基本组成部分包括数据定义语言(DDL)、...

    通过分析SQL语句的执行计划优化SQL(总结)

    在数据库管理中,SQL语句的执行效率是关键因素之一,尤其在处理大量数据时。通过对SQL语句的执行计划进行分析,我们可以找到优化查询性能的策略,从而提高数据库系统的整体性能。这篇博客"通过分析SQL语句的执行计划...

Global site tag (gtag.js) - Google Analytics