求SQL三表联合查询的语句优化
and t_odid_cpid.cpid in
( select t_odid_cpid.cpid from t_odid_cpid where t_odid_cpid.odid
in (select odid from T_ORDER where B_zzdm = '785390650'))
求以上语句的优化,非常感谢 展开
select t_cp.id, t_cp.proc, t_odid_cpid.num
from t_odid_cpid
left join t_cp on t_cp.id = t_odid_cpid.cpid
left join T_ORDER on t_odid_cpid.odid = T_ORDER.odid
Where T_ORDER.B_zzdm = '785390650'。
SQL
结构化查询语言(英文简称:SQL)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同 数据库系统,,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
一: 数据查询语言( DQL:Data Query Language):
其语句,也称为“数据检索 语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字 SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
二: 数据操作语言(DML:Data Manipulation Language):
其语句包括动词 INSERT, UPDATE和 DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。
三:事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四: 数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对 数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对胡搭 表单个列的访问。
五:数据定义扮饥语言( DDL):
其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人 数据库目录中获得数据有关的保留字。它也是动作查询的一部分。
六:指针控制语言(CCL):
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于裤缺拿对一个或多个表单独行的操作。
2024-09-04 广告
select t_cp.id, t_cp.proc, t_odid_cpid.num
from t_odid_cpid
left join t_cp on t_cp.id = t_odid_cpid.cpid
left join T_ORDER on t_odid_cpid.odid = T_ORDER.odid
Where T_ORDER.B_zzdm = '早春785390650'
SQL语句尽量不要用子查询,子查询腊穗速度最慢的陆局耐.
from t_odid_cpid,t_cp ,T_ORDER
where t_cp.id = t_odid_cpid.cpid
and t_odid_cpid.cpid=T_ORDER.odid
and t_cp.id = T_ORDER.odid
and B_zzdm = '785390650'
语句再优化,也源消离不开索引,所以,索引雹饥知也得肢察建
select t_cp.id,t_cp.proc,t_odid_cpid.num
from t_odid_cpid
left join t_odid_cpid
on t_cp.id=t_odid_cpid.cpid
left join T_ORDER
on t_odid_cpid.odid=T_ORDER.odid
WHERE T_ORDER.B_zzdm = '785390650'携宴
写语句的时候尽量不要用蠢隐昌in,效率比较低,可以用exist或者join来替代,从而提高性能.
另外注意条带扒件及连表字段加上索引,也可以提高性能.