高手给我指点下这几条语句如何优化?(关于复合查询)
网上找资料SQL语句优化方法,说复合查询比关联查询快一些,昨天听公司培训的讲师也这么说,于是想把程序改一改。但碰到一些问题,在这里希望得到一些指点经验。
select Top 1 a.Title,a.GroupID,a.Content,a.addtime,a.UserID,b.Name,b.FaceURL,b.Address from topicTable a,[User] b where a.id=@TopicID and a.topicID=0 and b.id=a.UserID
上面这样的两表关联查询,要输出的字段关系到两个表,能有什么更好的查询方法吗?
那么3表关联查询的呢??
SELECT TOP 6 id, GroupPic, GroupName, UserCount
FROM GroupTable
WHERE (id IN
(SELECT GroupID
FROM GroupUser
WHERE UserID IN
(SELECT UserID
FROM GroupUser
WHERE GroupID = 7 group by UserID)
GROUP BY GroupID))
ORDER BY id DESC
------解决方案--------------------select t.Title,t.GroupID,t.Content,t.addtime,t.UserID,b.Name,b.FaceURL,b.Address from [User] b,
(select Title,GroupID,Content,addtime,UserID from topicTable where id=@TopicID and a.topicID=0) as t
where b.id = t.UserID
这样试一下吧
第二个查询中的两个字查询为什么要加上GroupID,感觉没有必要。