有条件的加入与自我加入

时间:2018-08-22 14:40:52

标签: sql-server self-join

我试图将两个表连接到两个不同的列上,我想知道以下两种技术是否等效,如果可以,哪种方法在性能上更好?

使用OR(有条件的JOIN)加入

SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.HighValue
OR table1.value = table2.LowValue

使用自我加入

SELECT *
FROM TABLE1
JOIN table2 t2 ON table1.value = t2.HighValue
JOIN table2 t3 ON table1.value = t3.LowValue

1 个答案:

答案 0 :(得分:2)

这两个查询不相等,第一个查询等同于

SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.HighValue

UNION 

SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.LowValue