加入"或"还是在SQL?

时间:2013-03-23 18:05:57

标签: sql sql-server-2008

鉴于这个简单的架构:

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指向B中的不同PK,该怎么办?作为连接的结果,我最终会得到多条记录吗?或者它是否默认为或左边的那条记录并且匹配A.R1 = B.pk?


PS:我正在平板电脑上阅读代码并且没有数据库来测试它,所以请不要告诉我自己运行它:)我尝试谷歌搜索但没有找到确切的情况。

1 个答案:

答案 0 :(得分:2)

你有两行。

如果你有互联网,你总是有一个数据库可以提供SQL Fiddle - 链接就是你问题的答案。