了解何时在联接上使用子查询

Pie*_*ein 5 sql database sql-server relational-database

我似乎错过了一些东西。我一直读到,在我读过的大多数文章中,您应该使用联接而不是子选择。然而,我自己运行一个快速实验表明,当涉及到执行时间时,子查询取得了巨大的胜利。

试图获取所有出价者的名字(我想这些表格本身就说明了一切)会产生以下结果。

此连接需要 10 秒

select U.firstname
from Bid B
inner join [User] U on U.userName = B.[user]
Run Code Online (Sandbox Code Playgroud)

这个带有子查询的查询需要3秒

select firstname
from [User]
where userName in (select [user] from bid)
Run Code Online (Sandbox Code Playgroud)

为什么我的实验与我在各处阅读的内容不一致,或者我遗漏了什么?

经过实验,我发现在两者中添加不同后,执行时间是相同的。