你在新的語法查詢:
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' –