Объедините две таблицы, у которых есть еще одна таблица для отношения - PullRequest
0 голосов
/ 17 июня 2020

У меня есть три таблицы: Country, Country_i18 и Language. В Country хранятся все страны мира. В моей таблице языков хранятся мои языки: английский sh, немецкий ... А в моей Country_i18 хранятся названия стран по языку: et c. для Финляндии

  • EN: Финляндия
  • DE: Финляндия
  • IT: Финляндия
  • FR: Finlande

Таблица Country_i18n связана с таблицами Country и Language. With Country связан с CountryId, а с Language - с LanguageId. Теперь я хочу с помощью запроса SQL проверить, если для какой-либо страны в моей таблице Country посмотреть, не пропущено ли какое-либо название страны на языке ALL языков в моей таблице Language. Например: если в моей таблице отсутствует запись для страны Польша на немецком языке 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

1 Ответ

0 голосов
/ 17 июня 2020

Попробуйте это:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...