SQL表组合方法

时间:2013-06-22 17:55:04

标签: mysql sql database join

我想知道带有连接的查询与带有FROM子句的多个表的查询之间的区别。

例如:

SELECT *
FROM table1 NATURAL JOIN table2.

SELECT *
FROM table1, table2
WHERE table1.field=table2.field.

非常感谢你。

3 个答案:

答案 0 :(得分:1)

NATURAL JOIN比较两个表的所有列,并等于具有相同名称和相同类型的列。

基本上,当且仅当table1table2只有一个具有相同名称和类型的列,并且该列为{{1}时,这两个SQL语句才会执行相同的操作}。

答案 1 :(得分:0)

SQL JOIN子句用于根据两个或多个表之间的公共字段组合来自两个或多个表的行。

最常见的连接类型是:SQL INNER JOIN(简单连接)。 SQL INNER JOIN返回满足连接条件的多个表中的所有行。

您也可以使用WHERE,但与JOIN合乎逻辑。将WHERE用于特定条件。

答案 2 :(得分:0)

通常没有任何区别,数据库将两者都转换为相同的执行计划。

两个不同之处是:

  • join语法允许您进行外连接,
  • join语法允许您使用“自然”和“使用”,然后它们将两个输入列合并为一个输出列(因此您的第一个查询将比第二个列少一个列)