我目前在 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
所以 DOMESTIC 只需要在城市和省,因为它们是我国家本地的地方
区域 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);
现在你可以看到我的问题是,目前我只能得到地区和国家仍然为空的省市。有人可以帮我查询。
所以基本上我想做的是获取城市、省、地区和国家。
这是你想要的吗?
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;
对我来说,这似乎是一个更明智的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句