mySQL查询与内部连接之间的差异

mySQL查询与内部连接之间的差异,mysql,sql,Mysql,Sql,我有两个问题: $query = mysql_query("SELECT ord.orderID, customers.CustomerName, FROM ord, customers WHERE customers.CustomerSalary=ord.orderID"); 及 此查询返回相同的结果。它们之间有什么不同。两者都是相同的。第一个查询基本上是后端的内部连接,但是按照编写第二个查

我有两个问题:

$query = mysql_query("SELECT ord.orderID, customers.CustomerName,       
                      FROM ord, customers
                      WHERE customers.CustomerSalary=ord.orderID");


此查询返回相同的结果。它们之间有什么不同。

两者都是相同的。第一个查询基本上是后端的内部连接,但是按照编写第二个查询的方式,可以使用左连接、右连接等来处理该查询。 两者都将在后端执行笛卡尔乘积,并根据检查过滤出结果

为了使用左连接、右连接等,您需要使用第二种查询格式

另一种常用的方法称为嵌套查询。因为后端没有笛卡尔积,所以它们比连接快得多

$query = mysql_query("SELECT ord.orderID, customers.CustomerName, 
                      FROM ord
                      INNER JOIN customers
                      ON customers.CustomerSalary=ord.orderID");
此查询比另一个查询优化,因为首先应用内部联接,然后应用where子句

我看到的另一个好处是你可以改变内外连接


干净的代码。

没有区别,第一种是老式的,称为隐式连接,第二种更具可读性,被广泛使用,称为显式连接。
$query = mysql_query("SELECT ord.orderID, customers.CustomerName, 
                      FROM ord
                      INNER JOIN customers
                      ON customers.CustomerSalary=ord.orderID");