在我的數據庫,我有以下表格:計數出現在多對多
Person (
id,
name,
agentId
)
Agent (
id,
title
)
Agency (
id,
name
)
AgentAgency (
id,
agentId,
agencyId
)
我需要查詢,將獲得有關個人的所有信息 - >代理有額外屬性numberOfAgencies,將顯示每個代理的機構數量,並且我需要顯示一個更多的屬性agencyName,它會顯示我第一個或唯一代理的用戶名(我需要它的情況下代理只有一個代理)的名稱。
我試過這樣的事情,但沒有任何成功。
SELECT *, COUNT (aa.agentId) as numberOfAgencies
FROM agentAgencies as aa
LEFT JOIN agent as a ON a.id = aa.agentId
LEFT JOIN agency as ag ON aa.agencyId= ag.id
LEFT JOIN person as p ON p.id = ag.personId
GROUP BY ag.id, aa.id, p.id, a.id
例如,我希望迴應是這樣的: PERSONNAME約翰,AgencyName酷局,numberOfAgencies 4
顯示你嘗試過什麼。最好與所有必要的CREATE TABLE語句一起,以便有人可以在http://sqlfiddle.com/上覆制粘貼並立即開始工作。還要定義「沒有任何成功」的意思。另外,它是什麼? mysql或postgresql?選一個***。 –
MySQL或Postgres? –
你確定AgentAgency有正確的列嗎?通過它的命名,我認爲它是代理和代理之間的連接表。 column agentId代替personId嗎? – Ehz