这个问题可能很微不足道,但仍然是这样的 SQL Server 查询有什么区别:
SELECT t1.*, t2.Value
FROM table1 t1
LEFT JOIN table2 t2 ON t1.Id = t2.Id
对
SELECT
t1.*,
(SELECT Value FROM table2 t2 WHERE t1.Id = t2.Id)
FROM table1 t1
首先从表演POV来看。
我看不到第二个选项适合的情况,因为正如我所看到的,对于 t1 中的每条记录,服务器应该针对 t2 调用单独的查询,我想在这里很难优化任何内容。
有人可以评论一下是否有任何情况下,带有子查询的第二个选项可能比添加新表来加入更可取
使用 JOIN 通常优于不使用 JOIN,原因如下:
您可以在sql中搜索索引以获取更多信息