当我可以使用内部查询轻松解决相同问题时,我发现自己不愿意使用JOIN:
例如
SELECT COLUMN1, ( SELECT COLUMN1 FROM TABLE2 WHERE TABLE2.ID = TABLE1.TABLE2ID ) AS COLUMN2 FROM TABLE1;
我的问题是,这是一个糟糕的编程习惯吗?我发现与连接相比,它更容易阅读和维护.
UPDATE
我想补充一点,这里有一些很好的反馈,实质上是推回使用JOIN.由于ORM解决方案(LINQ to SQL,NHibernate等)的结果,我发现自己现在越来越少地直接使用TSQL,但是当我这样做时,我发现相关子查询之类的内容更容易线性输入.
就个人而言,我发现这非常难以阅读.它不是SQL开发人员期望的结构.通过使用JOIN,您可以将所有表源保留在一个位置,而不是在整个查询中传播它.
如果您需要三个或四个连接会发生什么?将所有这些放入SELECT子句将变得毛茸茸.