Объединяя 2 выберите заявление и присоединиться к SQL - PullRequest
0 голосов
/ 30 сентября 2019

У меня сейчас проблема с SQL-оператором

вот мой код

SELECT [Cities].ProvinceId,[Cities].Name,[Provinces].Name
FROM [Cities] JOIN Provinces
ON [Cities].ProvinceId = [Provinces].id
UNION
SELECT [Regions].RegionName,[Countries].CountryName
FROM [Regions] JOIN Countries
ON [Regions].RegionId = [Countries].RegionId

, поэтому я пытаюсь получить города, провинции, области и страны.

У меня есть 4 региона: АСЕАН = 1, АЗИЯ = 2, МИРОВОЙ = 3, ВНУТРЕННИЙ = 4

, так что ВНУТРЕННИЕ должны быть в городах и провинциях только потому, что ониздесь в моей стране локальные места

, а регионы 1,2,3 - для стран, но я могу присоединиться к теме из-за этих ошибок

Все запросы объединены с использованием UNION, INTERSECT илиОператор EXCEPT должен иметь одинаковое количество выражений в своих целевых списках.

, как я применил его в своем API

var provinces = await _provinceRepository.GetAll();
var cities = await _cityRepository.GetAllCities();

var result = provinces.Join(cities, p => p.Id, c => c.ProvinceId, (p, c) => 
    new DestinationModel
    {
        Region = null,
        City = c.Name,
        State = p.Name,
        Continent = null,
        Country = null
    }).ToList();

return Ok(result);

Теперь вы видите, что моя проблемачто на данный момент я могу получить только провинции и города, регион и страна по-прежнему равны нулю. Может ли кто-нибудь помочь мне с моим запросом.

1 Ответ

2 голосов
/ 30 сентября 2019

поэтому я пытаюсь получить города, провинции, регионы и страны.

Делает ли это то, что вы хотите?

SELECT c.Name as city, p.Name as province, co.name as country,
       r.name as region
FROM Cities c
JOIN Provinces p ON c.ProvinceId = p.id
JOIN Countries co ON p.CountryId = co.id
JOIN Regiones r ON co.RegionId = r.id;

Мне кажется, это более разумный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...