【发布时间】:2016-11-27 05:51:55
【问题描述】:
我有这样的事情:
SELECT CompanyId
FROM Company
WHERE CompanyId not in
(SELECT CompanyId
FROM Company
WHERE (IsPublic = 0) and CompanyId NOT IN
(SELECT ShoppingLike.WhichId
FROM Company
INNER JOIN
ShoppingLike ON Company.CompanyId = ShoppingLike.UserId
WHERE (ShoppingLike.IsWaiting = 0) AND
(ShoppingLike.ShoppingScoreTypeId = 2) AND
(ShoppingLike.UserId = 75)
)
)
它有3个选择,我想知道我没有3个选择我怎么能有它,哪一个对100万条记录有更好的速度? “select in select”还是“left join”?
【问题讨论】:
-
如果性能是个问题,请尝试硬件上数据库中数据的每个版本,看看哪个更快。
-
它有两个问题,我无法准备left join,对于大数据我无法测试它,因为我没有:(
-
如果 MS SQL 为您执行此操作,请不要担心,因为它的优化器会优化您的查询。您可以在 companyId 上创建索引以帮助 MS SQL 更快地进行查询。
标签: sql select left-join inner-join