我试图将两个表连接到两个不同的列上,我想知道以下两种技术是否等效,如果可以,哪种方法在性能上更好?
使用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
答案 0 :(得分:2)
这两个查询不相等,第一个查询等同于
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.HighValue
UNION
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.LowValue