你在新的语法查询:
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支持的,因为它可以返回不正确的结果。
谢谢约翰D,我从来没有使用JOIN,我只知道这种方式P.COD_PROP = V.PROPRIETARIO。但你的解释是完美的!谢谢!! –
'INNER JOIN'与'JOIN'相同 - 我认为很明显,没有额外的单词。 – Hogan
@Vitor不客气。供参考:这些条件中的任何一个都以相同的方式工作: 'V.PROPRIETARIO * = P.COD_PROP'或'P.COD_PROP = * V.PROPRIETARIO' –