INNER JOIN ON 与 WHERE 子句

2024-04-08

为简单起见,假设所有相关字段都是NOT NULL.

你可以做:

SELECT
    table1.this, table2.that, table2.somethingelse
FROM
    table1, table2
WHERE
    table1.foreignkey = table2.primarykey
    AND (some other conditions)

Or else:

SELECT
    table1.this, table2.that, table2.somethingelse
FROM
    table1 INNER JOIN table2
    ON table1.foreignkey = table2.primarykey
WHERE
    (some other conditions)

这两个以同样的方式工作吗MySQL?


INNER JOIN是您应该使用的 ANSI 语法。

通常认为它更具可读性,尤其是当您连接大量表时。

它也可以轻松地更换为OUTER JOIN每当有需要时。

The WHERE语法更面向关系模型。

两张表的结果JOINed 是应用了过滤器的表的笛卡尔积,该过滤器仅选择那些具有匹配的连接列的行。

使用以下命令更容易看到这一点WHERE syntax.

至于您的示例,在 MySQL(以及一般的 SQL)中,这两个查询是同义词。

另外,请注意 MySQL 也有一个STRAIGHT_JOIN clause.

使用此子句,您可以控制JOINorder:外循环扫描哪一张表,内循环扫描哪一张表。

你无法在 MySQL 中使用以下命令来控制它:WHERE syntax.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

INNER JOIN ON 与 WHERE 子句 的相关文章

随机推荐