Я использую SQL Server 2008, и у меня есть 3 таблицы, x
, y
и z
.y
существует для создания отношения «многие ко многим» между x
и z
.
x y z
-- -- --
id xid id
zid sort
Все вышеперечисленные поля int
.
Я хочунайти наиболее эффективный метод (исключая денормализацию) для нахождения z
с наибольшим sort
для любого x
и вернуть все поля из всех трех таблиц.
Пример данных:
x: id
--
1
2
y: xid zid
--- ---
1 1
1 2
1 3
2 2
z: id sort
-- ----
1 5
2 10
3 25
Результирующий набор должен быть
xid zid
--- ---
1 3
2 2
Обратите внимание, что если существует более одного z
с одним и тем же самым высоким sort
значением, тогда я все еще хочу только одну строку на x
.
Обратите внимание, что в моей реальной ситуации во всех трех таблицах есть другие поля, которые мне понадобятся в моем наборе результатов.