如何在 SQL 加入中指定多个条件?我知道A.key = B.key
除此之外是强制性的,在 SQL 中指定多个条件下面是否正确?
ON (A.key=B.key and/or cond1 and/or cond2 ...etc)
或
ON (A.key=B.key where cond1 and/or cond2 ..etc)
答案 0 :(得分:7)
您可以在连接中指定任意数量的条件,如:
ON A.Key=B.Key
AND b.value>100
AND (a.value>b.value OR b.value2 IS NULL)
答案 1 :(得分:1)
只需在ON条件后指定条件。
SELECT A.ColumnName, B.ColumnName FROM Table1 A <LEFT / RIGHT / INNER JOIN> Table2 B ON
A.Key = B.Key
AND A.Key > 0
AND (B.ColumnName <= 10 OR B.ColumnName >= 20)
AND A.Key > B.Key
答案 2 :(得分:0)
SELECT A.Column1, B.Column2 FROM Table1 A LEFT OUTER JOIN Table2 B ON A.KEY=B.KEY
AND Condition 1 AND ( Condition 2 OR Condition 3) OR Condition 4
答案 3 :(得分:0)
我认为你的第一个选择是正确的。
您可以使用多个连接条件,例如:
ON(A.key = B.key和/或cond1和/或cond2 ......等)。
对于第二个,WHERE应该在ON子句之后(使用JOIN子句的所有连接)。然后,这将在JOIN之后过滤数据。只需在WHERE之前关闭括号,它也可以正常工作。 像:
ON(A.key = B.key)WHERE cond1和/或cond2 ..etc
根据您的要求,可以使用上述两个选项。
答案 4 :(得分:0)
Arun Pati提供的答案适合我的问题。谢谢。以下是答案
” 您可以使用多个连接条件,例如:
ON(A.key = B.key和/或cond1和/或cond2 ......等)。
对于第二个,WHERE应该在ON子句之后(使用JOIN子句的所有连接)。然后,这将在JOIN之后过滤数据。只需在WHERE之前关闭括号,它也可以正常工作。像:
ON(A.key = B.key)WHERE cond1和/或cond2 ..etc“