SQL, объединяющий три таблицы, приоритет объединения

У меня есть три таблицы: R, S и P.

Таблица R Соединяется с S через внешний ключ; там должна быть хотя бы одна запись в S, поэтому я могу ПРИСОЕДИНЯТЬСЯ:

SELECT
        *
    FROM 
        R
    JOIN    S ON (S.id = R.fks)

Если в S нет записи, то я не получаю строк, это нормально.

Затем таблица S соединяется с P, где записи P могут присутствовать или не присутствовать и объединяться с S.

Так что я делаю

SELECT
        *
    FROM 
        R
    JOIN    S ON (S.id = R.fks)
    LEFT JOIN P ON (P.id = S.fkp)

Что, если бы я хотел, чтобы второе JOIN было привязано к S, а не к R, например, если Я мог бы использовать круглые скобки:

SELECT
        *
    FROM 
        R
    JOIN    (S ON (S.id = R.fks) JOIN P ON (P.id = S.fkp))

Или это уже естественное поведение декартова произведения между R, S и P?

23
задан vulkanino 23 September 2010 в 15:56
поделиться