为简单起见,假设所有相关字段均非空
你可以做:
选择
表1.这个,表2.那个,表2.一些东西
从…起
表一、表二
哪里
表1.foreignkey=表2.primarykey
和(其他一些条件)
否则:
选择
表1.这个,表2.那个,表2.一些东西
从…起
表1内部连接表2
在表1.foreignkey=表2.primarykey上
哪里
(其他一些条件)
在MySQL
中,这两种方法的工作方式相同吗
内部联接
是您应该使用的ANSI语法
它通常被认为更具可读性,尤其是当您连接许多表时
只要有需要,它也可以很容易地用外部连接替换
WHERE
语法更面向关系模型
两个表JOIN
ed的结果是对其应用筛选器的表的笛卡尔乘积,该筛选器仅选择那些具有匹配的联接列的行
使用WHERE
语法更容易看到这一点
就您的示例而言,在MySQL中(通常在SQL中),这两个查询是同义词
另外,请注意MySQL还有一个stright\u JOIN
子句
使用此子句,您可以控制联接的顺序:哪个表在外循环中扫描,哪个表在内循环中扫描
您无法在MySQL中使用WHERE
语法来控制这一点