0
我需要從一個關聯的數據庫中提取關聯的名稱和最後一個付費共享,但經過一天的嘗試,我根本無法提取該數據。最大左加入微軟sql服務器
表senhas代表股份,表associados相關數據和senhas_associados,代表一個員工支付的股份,因爲這是一個多對多的關係。
爲了查詢這個,我試圖用senhas_associados中代表付費份額的seassoc_senha_id中的最大id(senha)查詢共享。
這裏是我試過到目前爲止:
首先,我已經試過這種說法,是所需的輸出,但它並沒有顯示誰沒有支付其所需的任何應占聯營公司(在senhas_associados沒有記錄):
SELECT assoc_nome, senha_desig
FROM associados, senhas, senhas_associados
WHERE assoc_id = seassoc_assoc_id
AND seassoc_senha_id = senha_id
AND seassoc_senha_id IN (SELECT max(seassoc_senha_id)
FROM senhas, senhas_associados
WHERE seassoc_senha_id = senha_id
AND seassoc_assoc_id = assoc_id)
輸出:
assoc_nome | senha_desig
------------------------------
Carlos Costa | Maio
Rodrigo | Abril
我甚至嘗試添加此:
SELECT assoc_nome, senha_desig
FROM associados, senhas, senhas_associados
WHERE assoc_id = seassoc_assoc_id
AND seassoc_senha_id = senha_id
AND seassoc_senha_id IN (SELECT max(seassoc_senha_id)
FROM senhas, senhas_associados
WHERE seassoc_senha_id = senha_id
AND seassoc_assoc_id = assoc_id) OR senha_desig is null
無濟於事,輸出是一樣的。
然後,我已經改變了「戰術」,前往左的連接:
SELECT assoc_nome, senha_desig
FROM associados
LEFT JOIN senhas_associados ON associados.assoc_id = senhas_associados.seassoc_assoc_id
LEFT JOIN senhas ON senhas.senha_id = senhas_associados.seassoc_senha_id
輸出:
assoc_nome | senha_desig
-------------------------
Carlos Costa | Abril
Carlos Costa | Janeiro
Carlos Costa | Fevereiro
Carlos Costa | Maio
Rodrigo | Janeiro
Rodrigo | Fevereiro
Rodrigo | Abril
Pedro Soares | NULL
現在它顯示空的,但我找不到放在哪裏最大功能。
所以我請求你的幫助,因爲今天的下午,我堅持這一點。
謝謝大家,
問候。
下面是相關表的關係模型:http://i44.tinypic.com/30aykv8.png
問題解決了。非常感謝理查德。只改變了sa到s。 – Digmoons 2013-04-27 02:07:05
另外,有沒有辦法顯示senha_desig而不是senha_id? – Digmoons 2013-04-27 02:12:48