2011-05-22 38 views
3

下列sql語句實際上是什麼類型的連接?關於連接表的問題

select * 
from table1 tbl1, table2 tbl2 
where tbl1.id = tbl2.id 

如果兩個ID都匹配,是否只返回結果?

回答

4

這是一個內部連接。

是的,只有具有匹配ID的記錄纔會被返回。

這是一樣的:

select * 
from table1 tbl1 
inner join table2 tbl2 
    on tbl1.id = tbl2.id 

就個人而言,我更喜歡的INNER JOIN明確的符號。

4

是的,這是內部連接的ANSI-89語法。 ANSI-92定義了[INNER,LEFT等] JOIN關鍵字。

+0

我認爲這不僅僅是一個省略的JOIN關鍵字,而是一個完全不同的語法:當你使用'[INNER] JOIN'語法時,你應該在'ON'關鍵字之後而不是' WHERE – 2011-05-22 09:38:31

+0

你是對的,它是ANSI-89語法,它使用逗號分隔表語法和where子句進行連接。編輯帖子。 – jlew 2011-05-23 13:33:17