2013-07-29 46 views
-1

如果我使用的語法像這樣MySQL表連接語法

SELECT * FROM table_1, table_2 WHERE table_1.id=table_2.id; 

是這樣的INNER JOIN?換句話說,這是相當於

SELECT * FROM table_1 INNER JOIN table_2 ON table_1.id=table_2.id; 
+0

是的,它是等價的。 – Taryn

+1

看到這個問題:http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause – Zak

+0

謝謝扎克。我擔心這是一個重複的問題,但無法將我的問題簡化爲回答我的問題的搜索。 – Bill

回答

2

簡短的回答: 是的,這是一樣的。

大多數RDBMS最終都會以相同的方式處理這兩種語法。

使用INNER JOIN被認爲是更好的可讀性,也是ANSI standard

+0

另一種語法也是ANSI標準;) –

+0

我知道,我只是沒有把它放在那裏,以避免關於它的宗教辯論! :-) – Bjoern

1

對於這樣的簡單情況,似乎MySQL引擎會以相同的方式進行優化。我想通了這一點通過運行

DESCRIBE SELECT * FROM table_1, table_2 WHERE table_1.id=table_2.id; 

DESCRIBE SELECT * FROM table_1 INNER JOIN table_2 ON table_1.id=table_2.id; 

它告訴你一些有關的查詢將如何運行。