作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我支持的一个应用程序编写查询,我正在寻找在连接中尝试获取 OR 语句的 DB2 版本时成本更低的方法。因为你不能在
中使用“OR”Select *
FROM
TABLE A INNER JOIN TABLE B
ON
A.USERNAME = B.NAME
OR
A.USERNAME = B.USERNAME
我一直在考虑尝试 UNION 或 UNION ALL,但我担心匹配可能需要更长的时间才能返回。
最佳答案
虽然我和其他人一起确认 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)
关于sql - DB2 INNER JOIN OR 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770948/
我是一名优秀的程序员,十分优秀!