请问这段sql 的执行顺序是什么?特别是这段
‘where wh_bill.SID=aa.SPID and aa.SItemID=Wh_BillSub.SItemID’
起到什么作用呢?
select
(select distinct Sa_Order.SNO
from Wh_BillSub as aa
left join Sa_Order on sa_order.SID=aa.SSaOrderID
where wh_bill.SID=aa.SPID and aa.SItemID=Wh_BillSub.SItemID
for xml path(''))
from Wh_Bill
inner join Wh_BillSub on wh_bill.SID=Wh_BillSub.SPID
where是筛选器做匹配记录用的,Order 表中找到唯一订单号列表,在根据订单id号两个表做匹配筛选以 XML 字符串的形式返回,执行顺序需要你去看Tsql高级部分,读语句:from-join-on-where-group by-having-select-order by,了解投影选择链接的顺序,如果是刚开始学习,这部分还是较容易的
先关联查出SNO,然后对关联之后的数据进行筛选,筛选出符合 wh_bill.SID=aa.SPID and aa.SItemID=Wh_BillSub.SItemID的数据
SQL 查询优化可以轻松提高系统性能,从而节省成本,优化 SQL 查询可以提高运营效率并加快性能,从而提高系统上线进度。
SQL 查询优化很重要,原因有很多,包括:
组织可以通过更快的响应时间获得可靠的数据访问和高水平的性能,优化 SQL 查询不仅可以提高整体系统性能,还可以提高组织的声誉,最终,SQL 查询优化的最佳实践帮助用户获得准确、快速的数据库结果。
这张图我感觉很棒。
①执行FROM 子句
②执行inner join
③执行SELECT子句
其中SELECT子句括号中的执行顺序是
①from Wh_BillSub as aa
②left join Sa_Order on sa_order.SID
③where wh_bill.SID=aa.SPID
④SELECT distinct Sa_Order.SNO