2015-04-01 93 views
0

我有兩個疑問:不同的MySQL之間查詢INNER JOIN

$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"); 

該查詢返回相同的結果。他們之間有什麼不同。

+4

沒有什麼區別,第一個是老派的風格,叫做隱式連接,第二個是更具可讀性和廣泛使用的顯式連接。 – 2015-04-01 08:29:55

回答

0
$query = mysql_query("SELECT ord.orderID, customers.CustomerName, 
         FROM ord 
         INNER JOIN customers 
         ON customers.CustomerSalary=ord.orderID"); 

此查詢比另一個優化,因爲內部連接首先得到應用,然後將應用where子句。

其他好處我看到那是你可以改變內外連接。

乾淨的代碼。

0

兩者都是相同的。第一個查詢基本上是後端的內部連接,但是您已經編寫了第二個查詢的方式,您可以對該查詢使用左連接,右連接等。 兩者都將在後端執行笛卡爾積,並根據檢查結果篩選出結果。

您將需要使用第二個查詢格式,以便使用左側加入,右連接等

常用的是被稱爲嵌套查詢的另一種方法。由於後端沒有笛卡爾產品,它們比連接要快得多。