条件连接与自连接
Conditional JOIN vs Self JOIN
我正在尝试在两个不同的列上连接两个表,我想知道以下两种技术是否等效,如果是,哪一种在性能方面更好?
使用 OR 连接(条件连接)
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
两个查询不等价,第一个等价于
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.HighValue
UNION
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.LowValue
我正在尝试在两个不同的列上连接两个表,我想知道以下两种技术是否等效,如果是,哪一种在性能方面更好?
使用 OR 连接(条件连接)
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
两个查询不等价,第一个等价于
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.HighValue
UNION
SELECT *
FROM table1
JOIN TABLE2 ON table1.value = table2.LowValue