JOIN
- это реляционный оператор: он принимает два отношения в качестве параметров, а результатом является другое отношение.
Реляционные операторы могут быть связаны друг с другом.Рассмотрим ваш запрос на реляционном языке. Учебное пособие D:
Предполагается, что x
и y
- соответственно объявленные переменные отношения (relvars):
x := a MATCHING b;
y := x JOIN c {jerseynum};
В качестве альтернативы:
y := a JOIN c {jerseynum};
x := y MATCHING b;
Однако вышесказанное навязывает оптимизатору порядок выполнения: назначение промежуточных результатов для relvars, по сути, говорит оптимизатору, как выполнять свою работу (то есть не очень хорошо).Их можно объединить, например, следующим образом:
a MATCHING b JOIN c {jerseynum};
Предложение SQL FROM
работает аналогичным образом, т. Е. Нет необходимости присваивать промежуточным (производным) таблицам.Оптимизатор может оценивать их в любом порядке.Доверьтесь оптимизатору:)