我使用SQL Server 2008,我有3個表,x
,y
和z
。 y
存在以創建x
和z
之間的多對多關係。多對多關係中的最大值
x y z
-- -- --
id xid id
zid sort
以上所有字段均爲int
。
我想找到z
的sort
的最高性能方法(排除非規格化),並返回所有三個表中的所有字段。
的樣本數據:
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
一行。
還請注意,在我的現實世界的情況下,在我的結果集中需要的三個表中都有其他字段。
我相信你的現實世界的情況的解決方案後是?我建議你用每個表格的幾個額外字段來更新你的問題,並定義你想要的結果集。 – MPritchard 2010-07-02 09:14:10
只是爲了補充這個問題。您的數據庫設計是否已修復或仍在實施?我發現奇怪的是,你的「排序」是在z表中,而不是在y表中。我通常會發現,像這樣的多對多關係通常具有您在「y」表上可能感興趣的「z」類型。如果我錯了,不要理會我,沒有上下文就不可能知道。 – 2010-07-02 10:23:22
它仍在實施中,我同意你所說的,但在正在構建的內容中,排序是和應該在'z'表上。 – enashnash 2010-07-02 11:01:28