我有一个带有两个ID的表。ResourceId和LanguageId
我需要加入这两个选择,仅当ResourceId不在列表中时才添加第二个结果。
SELECT * FROM Resources WHERE Language = 1
SELECT * FROM Resources WHERE Language = 0
JOIN
/*where ResourceId not present already*/
到目前为止,除了复杂的分区,我什么都没想到。有一些简短而性感的解决方案吗?并非所有ResourceId都有Language 0条目并非所有ResourceId都有语言1条目一些ResourceId都具有
提前感谢
您可以使用具有存在逻辑的联合:
SELECT * FROM Resources WHERE Language = 1
UNION ALL
SELECT *
FROM Resources
WHERE Language = 0 AND NOT EXISTS (SELECT 1 FROM Resources WHERE Language = 1);