我想知道在 FROM 子句中带有连接的查询和带有多个表的查询之间有什么区别。
例如:
SELECT *
FROM table1 NATURAL JOIN table2.
或者
SELECT *
FROM table1, table2
WHERE table1.field=table2.field.
太感谢了。
NATURAL JOIN
比较两个表的所有列并等于具有相同名称和相同类型的那些。
所以基本上,这两个 SQL 语句将执行相同的操作当且仅当table1
和table2
只有一个具有相同名称和类型的列,并且该列是field
.
SQL JOIN 子句用于根据它们之间的公共字段组合来自两个或多个表的行。
最常见的连接类型是:SQL INNER JOIN(简单连接)。SQL INNER JOIN 返回满足连接条件的多个表中的所有行。
你也可以用 WHERE 做,但用 JOIN 是合乎逻辑的。将 WHERE 用于特定条件。
通常没有任何区别,数据库将两者转换为相同的执行计划。
这两个区别是: