联合 v/s 在 SQL 中的 3 个条件下进行内部联接

Union v/s Inner join on 3 conditions in SQL

以下 2 SQL 个语句会给出相同的结果吗?

SQL1-

A inner join B on (condition1)
union
A inner join B on (condition2)
union
A inner join B on (condition3)

SQL2-

A inner join B on (condition1) OR (condition2) OR (condition3)

至少要看A或B原本有双打。例如

with A(c) as (
 select 1 union all
 select 1 union all
 select 2 
 ),
B(c)  as (
 select 1 union all
 select 2 union all
 select 3 
 )
select *
from A join B on A.c=B.c
union
select *
from A join B on A.c>B.c

returns 3 行(不同)。

with A(c) as (
 select 1 union all
 select 1 union all
 select 2 
 ),
B(c)  as (
 select 1 union all
 select 2 union all
 select 3 
 )
select *
from A join B on A.c=B.c or A.c>B.c

returns 4 行,因为 A 有双打。