a.name建的索引在这个查询没有作用,因为你用的是LIKE '%12%'
语句好象没有优化的余地了,还是调整一下表结构吧,表的关系太多了.
语句好象没有优化的余地了,还是调整一下表结构吧,表的关系太多了.
解决方案 »
- sql语句如何获取.bak文件中的信息
- 从VFP导数据到sql2k数据太多,大家有方法吗?
- 如何使用while循环语句,依次显示员工数据表中的每条记录
- 我想开发sqlserver的插件,过滤某些sql语句,怎么做?
- 哪里能下载sql sever 2003中文企业版?
- 进销存的一个问题
- 超级郁闷中!散发!
- 请问:把一个表中的记录拷贝到另一个表中 的SQL语句怎么写
- "未以信任SQL SERVER连接相关联“
- 在SQL查询语句中如何将数值型int转换为带千分号的varchar型?
- 很急.请解决一个小问题,ADO与MHFLEXGID的连接的问题?
- 请教visual foxpro报表打印标题变化的问题?很急!!!
Select distinct a.ID,a.name,sex=
case a.sex
when 0 then '男'
when 1 then '女'
end, a.Company, a.Department, a.business
from Ta_AddressBook a,
Ta_AddressBookTree b
where a.name like '%12%'
and a.ABTID=b.ID
and b.PUID=2
union
Select distinct a.ID,a.name,sex=
case a.sex
when 0 then '男'
when 1 then '女'
end, a.Company, a.Department, a.business
from Ta_AddressBook a,
Ta_FistCatalogTree FCT,
Ta_FistCatalog FC,
Ta_FistCatalogRight FCR,
Ta_FistCatalogAndRight FCAR
where a.name like '%12%'
and a.ABTID=FCT.ID
and FCT.Attribute=FC.AFCT
AND FC.ID=FCAR.FCID
and FCAR.FCRID=FCR.ID
AND FCAR.UserID=2
case a.sex
when 0 then '男'
when 1 then '女'
end, a.Company, a.Department, a.business from Ta_AddressBook a inner join Ta_AddressBookTree b on a.ABTID=b.ID
WHERE a.name like '%12%' and b.PUID=2
union
Select distinct a.ID,a.name,sex=
case a.sex
when 0 then '男'
when 1 then '女'
end, a.Company, a.Department, a.business from Ta_AddressBook a INNER JOIN Ta_FistCatalogTree FCT ON a.ABTID=FCT.ID
inner join Ta_FistCatalog FC on FCT.Attribute=FC.AFCT
inner join Ta_FistCatalogRight FCR on FC.ID=FCAR.FCID
inner join Ta_FistCatalogAndRight on FCAR.FCRID=FCR.ID
WHERE a.name like '%12%' and FCAR.UserID=2
我也想调整表结构,问题是这不是由我定的!
to zhhp6489(坐看云起时)
其实我的语句也是使用的内联接,SQLSERVER会自动转为内联接写法
a.Company, a.Department, a.business
from Ta_AddressBook a,
Ta_AddressBookTree b,
Ta_FistCatalogTree FCT,
Ta_FistCatalog FC,
Ta_FistCatalogRight FCR,
Ta_FistCatalogAndRight FCAR
where a.name like '%12%'
and ((a.ABTID=b.ID and b.PUID=2)
or
(a.ABTID=FCT.ID and FCT.Attribute=FC.AFCT AND FC.ID=FCAR.FCID and FCAR.FCRID=FCR.ID AND FCAR.UserID=2))问题出在OR上,表多不怕,就怕非约束性的查询,象OR就是.你把OR拿掉比较一下.