Вопрос:
Как получить контейнер, содержащий автомобили из разных стран?
Ответ:
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
Таким образом, мы группируем результат по идентификатору контейнера и считаем уникальные идентификаторы стран
Guid1 2
Guid2 1
На последнем шаге мы фильтруем результат, чтобы иметь только те контейнеры, в которых количество стран превышает единицу.
Guid1