我有一個查詢,我可以得到正確的。所以這裏是我的場景: 我有一個名爲'Couriers'的父表,然後1名快遞員可能有1個或許多'信使',然後Couriers有一個名爲'控制'的第二個表,我控制信使有多少個信使。 結構是這樣的:我的查詢有什麼問題?
'Courier'
idCourier(pk)
181
162
101
'Messenger'
idMessenger (pk), idCourier (fk)
1 101
2 181
3 101
4 101
5 162
'Control'
idCourier(pk, fk), maxNumberOfMessengers, idSupervisor
181 20 146
181 20 149
162 10 129
162 10 130
162 10 138
162 10 139
101 0 83
101 0 86
於是用一個查詢:
SELECT COUNT(G.idCourier) AS NUM_COURIER, G.idMessenger, SUM(T.maxNumberOfMessengers) AS TOTAL
FROM Courier M
LEFT JOIN Messenger G ON M.idCourier = G.idCourier
LEFT JOIN Control T ON T.idCourier = G.idCourier AND T.idCourier = M.idCourier
GROUP BY G.idMessenger
我得到:
NUM_COURIER G.idMessenger TOTAL
2 181 40
4 162 40
6 101 0
我期待:
NUM_COURIER G.idMessenger TOTAL
1 181 40
3 162 40
1 101 0
什麼我想念你嗎? ing或在我的查詢中做錯? 在此先感謝!! :)
你使用的是mysql嗎? SQL服務器?甲骨文? –
我使用oracle – linker85
我認爲你不需要左連接表,而是INNER JOIN –