我有3张如下表
CREATE TABLE [dbo].[Languages](
[Title] [nvarchar](50) NOT NULL,
[Description] [nvarchar](200) NULL,
[Id] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_Language] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
CREATE TABLE [dbo].[LocalizationKeys](
[Key] [nvarchar](500) NOT NULL,
[Id] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_LocalizationKey] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
CREATE TABLE [dbo].[LocalizationValues](
[Value] [nvarchar](500) NOT NULL,
[LanguageId] [uniqueidentifier] NULL,
[LocalizationKeyId] [uniqueidentifier] NULL,
[Id] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_LocalizationValue] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
以下数据
Languages
Title Description Id
en-US English C3B95465-0B0B-4B97-8C60-19D611F6A185
fi-FI Finnish 7EDF3C04-3846-4B01-8045-315E26D05CD1
LocalizationKeys
Key Id
Save A4B7E6DE-BBCE-40FB-8F0E-FE1034B2CAAF
LocalizationValues
Value LanguageId LocalizationKeyId Id
Save C3B95465-0B0B-4B97-8C60-19D611F6A185 A4B7E6DE-BBCE-40FB-8F0E-FE1034B2CAAF 6EB167F5-550B-435E-B6B3-35A02F21F630
现在,LocalizationValues table
language fi-FI
的{{1}}值
所以我想通过给出LocalId的LocalizationKeyId来找到它 该LanguageId缺少 我已经测试了此查询以进行记录 - 它无法正常工作
LocalizationKeyId='A4B7E6DE-BBCE-40FB-8F0E-FE1034B2CAAF'
答案 0 :(得分:2)
您可以使用NOT EXISTS
:
SELECT [Key], Id
FROM LocalizationKeys AS lk
WHERE NOT EXISTS (SELECT 1
FROM Languages AS l
JOIN LocalizationValues AS lv ON l.Id = lv.LanguageId
WHERE l.Title = 'fi-FI' AND lv.LocalizationKeyId = lk.Id)
上述查询返回指定LocalizationKeyId
缺少的LanguageId
值。
答案 1 :(得分:1)
尝试以下查询...
select * from Languages l
inner join LocalizationKeys lk on 1=1
left join LocalizationValues lv on lv.LanguageId = l.id and lv.LocalizationKeyId = lk.id
如果您发现LocalizationValues字段值为null,则其缺失