合并具有另一个表用于关系的两个表



我有三个表:国家,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;

最新更新