为什么使用JOIN而不是内部查询

Kei*_*ler 7 sql-server

当我可以使用内部查询轻松解决相同问题时,我发现自己不愿意使用JOIN:

例如

SELECT COLUMN1, ( SELECT COLUMN1 FROM TABLE2 WHERE TABLE2.ID = TABLE1.TABLE2ID ) AS COLUMN2 FROM TABLE1;

我的问题是,这是一个糟糕的编程习惯吗?我发现与连接相比,它更容易阅读和维护.

UPDATE

我想补充一点,这里有一些很好的反馈,实质上是推回使用JOIN.由于ORM解决方案(LINQ to SQL,NHibernate等)的结果,我发现自己现在越来越少地直接使用TSQL,但是当我这样做时,我发现相关子查询之类的内容更容易线性输入.

Jor*_*mer 8

就个人而言,我发现这非常难以阅读.它不是SQL开发人员期望的结构.通过使用JOIN,您可以将所有表源保留在一个位置,而不是在整个查询中传播它.

如果您需要三个或四个连接会发生什么?将所有这些放入SELECT子句将变得毛茸茸.


HLG*_*GEM 6

连接通常比相关子查询更快,因为它一次作用于行集而不是一行.我永远不会让这些代码进入我的生产服务器.

我发现连接更容易阅读和维护.


a'r*_*a'r 6

如果您需要第二个表中的多个列,则需要两个子查询.这通常不会像连接一样好.