从多个SQL Server 2008表中进行选择时,是否推断了连接?

时间:2014-03-31 14:15:23

标签: sql sql-server-2008

我在db中找到了一个sproc,我想推断一个表连接?

从下面的示例中推断出这是否准确?

SELECT a.Column1, b.Column2
  FROM [dbo].[Table1] As a,
  [dbo].[Table2] AS b

3 个答案:

答案 0 :(得分:3)

您推断正确,这是笛卡尔联接。

答案 1 :(得分:3)

它确实推断了一个联接,但该联接是一个CROSS JOIN,这很少是你想要的。它不会简单地将a的每一行映射到b中的等价行。相反,它会将a的每一行映射到b的每一行。这是一个联接,但当我们谈论联接时,它并不是我们经常想到的。

我想展示一个简单的例子,但不幸的是,SQL Fiddle已经失败了。遗憾!

有关SQL Server here中的交叉连接和笛卡尔积的更多信息。

答案 2 :(得分:2)

是的,它被称为“自然加入”。您可以使用WHERE子句约束它。