怎么能把这三条sql语句写成一句?

weixin_37701715 2017-08-03 04:01:20
select c.* from t_cases c where TARGET_TYPE='A';

select c.* from t_target_case p join t_cases c on p.RESOURCE_ID=c.ID where p.USER_ID=(select user_Id from t_api_token where token='uQvdZVnMltke');

select c.* from t_cases c
inner join t_target_group_res g on g.RESOURCE_ID=c.ID and g.RESOURCE_TYPE='CASE'
inner join t_target_group_user u on u.GROUP_ID=g.GROUP_ID and u.USER_ID=(select user_Id from t_api_token where token='uQvdZVnMltke');

t_cases的TARGET_TYPE有A S G 三个值,当值为A的时候直接查出来,值为B 值为C分别对应2、3句的情况,现在能不能把这三句连起来,试过关联所有的表,查了70多秒才查出来
...全文
347 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2017-08-03
  • 打赏
  • 举报
回复
引用 8 楼 weixin_37701715 的回复:
[quote=引用 7 楼 yenange 的回复:]
--先查到这3个表的索引, 截图贴出来
EXEC sp_helpindex 't_cases'
EXEC sp_helpindex 't_target_case'
EXEC sp_helpindex 't_target_group_res'
t_cases 只查到这张表有索引 。。 [/quote] 你没有执行我发的存储过程? 这些表连主键都没有?
中国风 2017-08-03
  • 打赏
  • 举报
回复
在T-SQL语句条件列上没有索引时,建上索引 或 在查询分析器里查看执行计划查看占用百分比多的位置,上面有没有推荐的建索引的T-SQL,有说明缺少适合索引
weixin_37701715 2017-08-03
  • 打赏
  • 举报
回复
引用 7 楼 yenange 的回复:
--先查到这3个表的索引, 截图贴出来
EXEC sp_helpindex 't_cases'
EXEC sp_helpindex 't_target_case'
EXEC sp_helpindex 't_target_group_res'


t_cases


只查到这张表有索引 。。
吉普赛的歌 2017-08-03
  • 打赏
  • 举报
回复
--先查到这3个表的索引, 截图贴出来
EXEC sp_helpindex 't_cases'
EXEC sp_helpindex 't_target_case'
EXEC sp_helpindex 't_target_group_res'
weixin_37701715 2017-08-03
  • 打赏
  • 举报
回复
引用 4 楼 yenange 的回复:
重点不是一句还是三句,而是有没有合适的索引? 先把关联的字段都加上索引吧。
我是个新手阿,想问索引是在语句中加还是在数据库中加
weixin_37701715 2017-08-03
  • 打赏
  • 举报
回复
我是个新手阿,想问索引是在语句中加还是在数据库中加
吉普赛的歌 2017-08-03
  • 打赏
  • 举报
回复
重点不是一句还是三句,而是有没有合适的索引? 先把关联的字段都加上索引吧。
weixin_37701715 2017-08-03
  • 打赏
  • 举报
回复
第三个语句关联了三个表用了0.36秒有什么办法 优化吗
中国风 2017-08-03
  • 打赏
  • 举报
回复
用UNION ALL 连接结果集 UNION --时会过滤重复值
weixin_37701715 2017-08-03
  • 打赏
  • 举报
回复
我在想能不能条件控制把 1输出后 关联其它表再把2输出 再关联其它表把3输出

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧