我有桌子表
Car:
Id
Name
ProductionCountry
Containers :
ID (GUID)
CarId
我想获得容器,来自不同国家的汽车在哪里
所以:
Cars:
1 BMW X5 DE
2 BMW X3 DE
3 AUDI A6 MX
4 AUDI A1 FR
5 VOLVO S40 FR
Containers
Guid1 1
Guid1 2
Guid1 3
Guid2 4
Guid2 5
所以在结果中我获得了Guid1,因为在这个容器中是来自不同国家的汽车。
如何编写查询来获取它?
答案 0 :(得分:1)
我认为(我目前无法访问sql,但我猜的是这样的)
select id, count(productioncountry)
from (
select distinct id, productioncountry
from container c inner join car on car.id = c.CarId) conts
group by id
having count(productioncountry) > 1
答案 1 :(得分:1)
<强>问题:强>
如何检索包含来自不同国家/地区的汽车的容器?
<强>答案:强>
SELECT Containers.ID FROM Containers INNER JOIN Car ON Containers.CarId = Car.Id
GROUP BY Containers.ID
HAVING COUNT(DISTINCT ProductionCountry) > 1
GO
它是如何工作的?
我们将车上的汽车加入汽车上的唯一标识符。这为我们提供了有关哪些国家标识符在哪些容器中的信息
Guid1 DE
Guid1 DE
Guid1 MX
Guid2 FR
Guid2 FR
因此,我们按容器ID对结果进行分组,并统计唯一的国家/地区ID
Guid1 2
Guid2 1
在最后一步中,我们过滤结果,使其只包含国家数量大于1的容器。
Guid1