当没有包含 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
最佳答案
您需要一个 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
关于SQL JOIN 带空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449166/