Как правило, он должен ударить по трем столам.
Рассмотрим
SELECT A.VAL, B.VAL, C.VAL FROM A JOIN B ON A.ID = B.ID JOIN C ON A.ID = C.ID
Возможно, что один идентификатор в «A» будет иметь ноль, 1 или несколько совпадений в B или C. Если таблица «C» будет пустой, представление никогда не вернет строку, поэтому даже просто запрашивает A. VAL или B.VAL, он все еще должен был бы видеть, была ли соответствующая строка в "C".
Исключение составляют случаи, когда из-за принудительного ограничения ссылочной целостности оптимизатор знает, что строка в «B» всегда будет иметь родительскую строку в «A». В этом случае для выбора B.VAL не нужно фактически проверять наличие родительской строки в «A». Об этом свидетельствует статья