那些臭名昭著的sql

简介: 两个或多个表关联,没写where条件,大量的笛卡尔值,严重时会导致数据库有问题。 select * from a, b left join c on b.id = c.id left join d on c.id = d.id 多表关联查询,where条件使用各种函数,导致索引无效。
  • 两个或多个表关联,没写where条件,大量的笛卡尔值,严重时会导致数据库有问题。
select * from a, b left join c on b.id = c.id left join d on c.id = d.id
  • 多表关联查询,where条件使用各种函数,导致索引无效。数据量如果打起来以后会导致查询像蜗牛一样。
select 
trim(d.circuitid) as circuitid,
trim(d.Code) as Code,
trim(d.Oldname) as Oldname,
trim(d.Circuittype) as Circuittype,
trim(d.Status) as Status,
trim(d.customerid) as acustomerid,
trim(d.alinkman) as alinkman,
trim(d.zlinkman) as zlinkman,
trim(d.alinkmantel) as alinkmantel,
trim(d.zlinkmantel) as zlinkmantel,
trim(d.busi_no) as busi_no,
trim(d.service_serial) as service_serial,
trim(a.region_ID) as regionid ,
2 as SORTID
from test1 a,test2 b,test3 c,test4 d 
where trim(a.room_id)=trim(b.roomID) and trim(b.neid)=trim(c.neid) and (trim(c.portid)=trim(d.aendname) or trim(c.portid)=trim(d.zendname))

 

相关文章
|
26天前
|
SQL
SQL IN
【11月更文挑战第05天】
31 5
|
7月前
|
SQL 存储 数据管理
SQL
SQL
43 0
|
4月前
|
SQL 数据库 开发者
SQL中为什么不要使用1=1?
【8月更文挑战第11天】在SQL查询语句中,偶尔会遇到使用1=1作为WHERE子句一部分的情况,这种做法看似无害,实则隐藏着一些潜在的问题和更好的替代方案。本文将深入探讨为什么不建议在SQL中使用1=1,并分享更优化的查询构建策略。
93 2
|
6月前
|
SQL Java 数据库连接
SQL中为什么不要使用1=1
本文探讨了在SQL查询中使用`1=1`的现象及其背后的原因与问题。开发人员有时使用`1=1`作为始终为真的条件来方便动态构建SQL语句,但这样做可能会带来性能问题,尽管现代数据库查询优化器可能能优化掉这种条件,但在复杂查询或特定系统中仍可能影响效率。此外,`1=1`还降低了代码的可读性和跨数据库的兼容性。建议使用更佳实践,如MyBatis的动态SQL标签或Entity Framework的函数式查询,以避免不必要的条件。代码质量的重要性在于每一行代码都应有其明确的目的,避免浪费计算资源。
|
7月前
|
SQL 数据库 索引
SQL常用知识
SQL常用知识
|
SQL Oracle 关系型数据库
sql
sql
94 0
|
SQL 网络协议 Docker
sql审核
sql审核
391 0
|
SQL Oracle 关系型数据库
SQL必知必会(三)
作用是从一个或多个表中检索信息
|
SQL
SQL日常
SQL日常
123 0