SQL JOIN与null

Sha*_*owG 3 sql join

当没有行D.MetaDataID = '580c215f-54cb-4449-8368-7d740be71973'和数据表时,我该怎么办才能使我的语句返回Null ?

我试过Left JOIN但没有任何改变...... :(

SELECT 
D.Value
FROM dbo.Item I
JOIN dbo.Data D ON D.ItemID = I.ID
WHERE  I.ItemTypeID = '14ea6709-1bf8-4d5c-9090-3ace3cc42874' --Instance.album
       AND D.MetaDataID = '580c215f-54cb-4449-8368-7d740be71973' --freepacks
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 7

你需要一个LEFT JOIN并将条件D移入ON子句而不是WHERE.在该WHERE子句中,这会将您的查询转换回内部联接.

SELECT D.Value
FROM   dbo.Item I
       LEFT JOIN dbo.Data D
         ON D.ItemID = I.ID
            AND D.MetaDataID = '580c215f-54cb-4449-8368-7d740be71973'
--freepacks
WHERE  I.ItemTypeID = '14ea6709-1bf8-4d5c-9090-3ace3cc42874' --Instance.album
Run Code Online (Sandbox Code Playgroud)