2016-05-15 3 views
-1

Я использую JOIN в этом запросе, я не знаю, как, но я использовал прямую ссылку, а результат - corret ... Pls Help meКак использовать левое соединение и/или правое присоединение и/или внутреннее соединение

Благодаря

вопрос: Что приличий имя, где номерной знак (Placa) = LVU9132

SELECT P.NOME 
FROM MODELO M 
    ,VEICULO V 
    ,PROPRIETARIO P 
WHERE P.COD_PROP = V.PROPRIETARIO 
    AND V.MODELO = M.COD_MOD 
    AND V.PLACA = 'LVU9132'; 

ответ

0

Ваш запрос в новом синтаксисе:

SELECT P.NOME 
FROM MODELO M 
inner join VEICULO V on V.MODELO = M.COD_MOD 
inner join PROPRIETARIO P on P.COD_PROP = V.PROPRIETARIO 
WHERE V.PLACA = 'LVU9132'; 

Внутреннее соединение требует как совпадающие строки присутствовать. Если соответствующая строка PROPRIETARIO не найдена, строка VEICULO также не будет отображаться.

Используйте следующее, если вы хотите увидеть ряд автомобилей, даже если у него нет подходящего собственника. Левое объединение возвращает нули для правой таблицы PROPRIETARIO, если соответствующие строки не найдены. Обратите внимание, что левое соединение требует наличия таблицы левой руки, но не имеет значения, нет ли соответствующих строк в правой таблице.

Новый синтаксис (стандарт ANSI92)

SELECT P.NOME 
FROM MODELO M 
inner join VEICULO V on V.MODELO = M.COD_MOD 
left join PROPRIETARIO P on P.COD_PROP = V.PROPRIETARIO 
WHERE V.PLACA = 'LVU9132'; 

Синтаксис старого стиля больше не поддерживается в SQL Server 2012, так как он может возвращать неверные результаты.

+0

Спасибо John D, я никогда не использовал JOIN, я знаю только так. P.COD_PROP = V.PROPRIETARIO. Но ваше объяснение было совершенным !! Благодаря!! –

+0

'INNER JOIN' - это то же самое, что' JOIN' - я думаю, что нет лишнего слова. – Hogan

+0

@Vitor Добро пожаловать. FYI: Любое из этих условий работает одинаково: 'V.PROPRIETARIO * = P.COD_PROP' или' P.COD_PROP = * V.PROPRIETARIO' –

0

Вам не нужно внешнее соединение, чтобы ответить на этот вопрос (как ставить);

SELECT P.NOME 
FROM MODELO M JOIN 
    VEICULO V 
    ON V.MODELO = M.COD_MOD JOIN 
    PROPRIETARIO P 
    ON P.COD_PROP = V.PROPRIETARIO 
WHERE V.PLACA = 'LVU9132'; 
+0

Спасибо @ Gordon Linoff !!! Это так же позитивно, но мой учитель хочет только так (левое соединение и т. Д.)! Я так зол!!! –

Смежные вопросы