这句SQL有更简便或更优化的写法么?

--有两张表[3d_Zf_Tzje]数据表、[3d_Zf_Tzje_Record]数据记录表

--[3d_Zf_Tzje_Record]的TzjeId关联[3d_Zf_Tzje]的Id

select  top 1 Id,Cid,Je,AddTime,AddId,AddContent from [3d_Zf_Tzje]  where Id in (select TzjeId from [3d_Zf_Tzje_Record] where State=0) and Cid=125
阅读 2.5k
3 个回答
SELECT
    A.Id,
    A.Cid,
    A.Je,
    A.AddTime,
    A.AddId,
    A.AddContent
FROM
    [3d_Zf_Tzje] A
INNER JOIN
    [3d_Zf_Tzje_Record] R
ON
    R.TzjeId = A.Id AND State = 0
WHERE
    A.Cid = 125
GROUP BY
    A.Id;

很久没写了,给你点意见,先将两张表联系起来,这样查询效率高,from [3d_Zf_Tzje],[3d_Zf_Tzje_Record],你可以通过id联系起来,然后 再where state =0 and cid =125。

这个语句本来就不复杂,从写法上有三种:

  1. in

  2. exists

  3. join

具体哪种写法效率高,需要实际看一下执行计划和执行时间。
如果3d_Zf_Tzje_Record表数据量比较大,建议写成join的语法,减少3d_Zf_Tzje_Record表的查询次数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进