JOIN与多个FROM表

时间:2014-11-13 09:42:40

标签: sql-server

是否存在连接不会返回具有相同条件的FROM多个表返回的数据的情况?

e.g。

SELECT *
FROM TableNames as Names
INNER JOIN TableNumbers as Numbers on Names.ID = Numbers.ID

VS

SELECT *
FROM TableNames as Names, TableNumbers as Numbers
WHERE Names.ID = Numbers.ID

2 个答案:

答案 0 :(得分:1)

INNER JOIN(如第一个示例中所示)将始终返回与使用相同连接条件的WHERE过滤器的笛卡尔连接相同的数据(第二个示例)。

但是,请注意,对于OUTER JOIN,情况并非如此,其中NULL值在笛卡尔连接中被过滤掉,WHERE过滤器作为连接条件。

答案 1 :(得分:0)

简单地说,两个查询都是相同的并且做同样的事情。

  1. 内部联接通常被认为更具可读性,尤其是当您加入大量表格时。
  2. WHERE语法是面向关系模型的更多。