我有三个表:国家,Country_i18和语言。 在国家/地区存储世界上所有国家/地区。在我的语言表中存储了我的语言:英语,德语... 在我的Country_i18中存储了按语言划分的国家名称:芬兰等
- EN:芬兰
- 德国:芬兰
- IT:芬兰
- FR: 芬兰语
表Country_i18n 与表"国家/地区"和"语言"相关。与国家/地区由国家 ID 相关,与语言与语言 ID 相关。 现在我想用SQL查询检查我的表格中的任何国家/地区,查看我的表中所有语言的语言是否缺少任何国家名称。 例如:如果我的表格中缺少德语国家波兰的记录Country_i18我想得到这样的东西:
+---------------+-----------+------------+
| Country_i18ID | CountryId | LanguageID |
+---------------+-----------+------------+
| NULL | 1 | 1 |
+---------------+-----------+------------+
或者,如果记录存在,则:
+---------------+-----------+------------+
| Country_i18ID | CountryId | LanguageID |
+---------------+-----------+------------+
| 2 | 2 | 2 |
+---------------+-----------+------------+
我尝试了这样的事情,但没有用:
SELECT tablica.ID_drzava_jezik AS 'Country_i18ID', tablica.ID_drzave AS 'CountryId', CL.Id AS
'LanguageID'
FROM Common.Language CL
LEFT JOIN (SELECT CC.Id ID_drzave, CC.Title, CCi.Id ID_drzava_jezik, CCi.Name, CCi.LanguageId
FROM Common.Country_i18n CCi
RIGHT JOIN Common.Country CC ON CCi.CountryId = CC.Id) tablica ON CL.Id = tablica.LanguageId
ORDER BY tablica.ID_drzave
试试这个:
SELECT Country_i18ID,CountryId,LanguageID
From Country_i18
Right Outer Join Country on Country.CountryId = Country_i18.CountryId
Right Outer Join Language on Language.LanguageID = Country_i18.LanguageID
WHERE CountryId IS NOT NULL and LanguageID IS NOT NULL;