2013-03-23 84 views
0

鑑於這種簡單的模式:當您加入「或」或SQL時會發生什麼?

create table A(pk int primary key, R1 int, R2 int); 
create table B(pk int primary key); 

如果我做下面的查詢和使用OR,如下圖所示加入到底會發生什麼?

select * 
from A 
join B 
on A.R1 = B.pk or A.R2 = B.pk 

我感興趣的是下面的情況:

如果一個行存在,其中R1和R2指向不同的PK B中?作爲連接的結果,最終是否有多條記錄?或者它只是默認在or的左側,並且與A.R1 = B.pk匹配?


PS:我在平板電腦上閱讀代碼,並沒有一個數據庫,以測試它,所以請不要告訴我運行它自己:)我試着用搜索引擎,但沒有找到確切的情況。

+1

您將以A的重複記錄結尾。 – 2013-03-23 18:18:28

回答

2

你得到兩行。

如果你有互聯網,你總是有一個數據庫手SQL Fiddle - 鏈接是對你的問題的答案。

+0

真棒,謝謝你。我完全忘了SQL小提琴;有人在幾個月前給我看了。我將不得不開始使用它:) – 2013-03-23 18:21:39

相關問題