Использование транзитивности
Если во фразе WHERE общий столбец участвует в двух условиях, то оптимизатор может иногда вывести из них третье условие, используя принцип транзитивности.
Например,
A.X = B.X AND A.X = C
заменяются на
A.X = C AND B.X = C
Принцип транзитивности применим ко всем операторам сравнения, т.е. =, !=, ^=, < >, < , >, < =, >=.
Оптимизатор может заменять лишь такие условия, которые связывают столбцы с константными выражениями, но не с другими столбцами.
Например, пусть фраза WHERE содержит два условия следующего вида:
WHERE A.X = B.Y AND A.X = C.X
В этом случае принцип транзитивности не используется, т.е. оптимизатор не сформирует фразу WHERE со следующим условием:
B.Y = C.X