DB2 INNER JOIN OR语句

em3*_*ale 2 sql db2

我正在为我支持的一个应用程序编写查询,并且我正在寻找在尝试在连接中获取DB2版本的OR语句时会花费更少的内容.因为你不能在里面使用"OR"

Select * 
FROM
  TABLE A INNER JOIN TABLE B
ON 
   A.USERNAME = B.NAME
OR
   A.USERNAME = B.USERNAME
Run Code Online (Sandbox Code Playgroud)

我一直在寻找UNION或UNION ALL,但我担心这场比赛可能需要更长时间才能回归.

And*_*y M 5

虽然我和其他人一起确认OR可以很容易地在连接条件中使用,比如在任何其他条件下(所以你的查询非常好),OR在这种特殊情况下你仍然可以不用.

column = value1 OR column = value2可以将针对多个不同固定值测试相同列的条件转换为column IN (value1, value2).后者应该比前者更糟糕,并且最终看起来更清晰.

所以:

SELECT *
FROM
  TABLE A
INNER JOIN
  TABLE B
ON 
  A.USERNAME IN (B.NAME, B.USERNAME)
Run Code Online (Sandbox Code Playgroud)