如何写子查询 才能 使用索引

parv2 2016-02-18 05:16:58
我有2个 表
现在 要首先从 表1中 读取到符合条件的 数据行
数据行 中 包含了 表2的id
然后再从表2 中读取 所需的id 行 的数据(表2的id是主键)

sql 写为
SELECT id,s1 FROM 表2 WHERE id =
any (
SELECT needid
FROM 表1 WHERE xx =8
)

写为这个时 使用不上 表2 的 主键索引

请问怎么写 才能用上 表2 的 主键索引
...全文
384 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
parv2 2016-02-19
  • 打赏
  • 举报
回复
引用 2 楼 benluobobo 的回复:
SELECT A.id, A.s1 FROM 表2 A, 表1 B WHERE A.id = B.id and B.xx = 8
另外在求问一下 我需要 A表里 许多字段 如果 写成 SELECT A.id, A.s1,A.s2,A.s3,A.s4,A.s5 FROM 表2 A, 表1 B WHERE A.id = B.id and B.xx = 8 这样 感觉 太臃肿了 请问 有没有 简写的 格式啊...
parv2 2016-02-19
  • 打赏
  • 举报
回复
引用 2 楼 benluobobo 的回复:
SELECT A.id, A.s1 FROM 表2 A, 表1 B WHERE A.id = B.id and B.xx = 8
非常感谢你!!!!!!!!! 成功使用上两个表的索引!!!
benluobo 2016-02-19
  • 打赏
  • 举报
回复
SELECT A.id, A.s1 FROM 表2 A, 表1 B WHERE A.id = B.id and B.xx = 8
lynnf87 2016-02-18
  • 打赏
  • 举报
回复
转换成关联方式写法试试

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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