0

鉴于这个简单的模式:

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 的行怎么办?由于连接,我最终会得到多条记录,还是只是默认到 or 的左侧并匹配 A.R1 = B.pk?


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

4

1 回答 1

2

你得到两行。

如果你有互联网,你总是有一个数据库来处理SQL Fiddle - 链接是你问题的答案。

于 2013-03-23T18:16:11.417 回答