我需要做一個列表與掃描的大多數事情,公司...我有兩個表,Exhibitors
和Leads
如何使用LEFT JOIN進行計數?
Leads
包含每一個參展商做每個「動作」。有時,在Exhibitors
表中,同一公司有兩個帳戶。例如,PepsiCO可能有兩個賬戶。
連接兩者的鍵/列被稱爲ExhibitorID
。
我需要檢索前導數最多的20個(所以COUNT(*)在leads
),但我需要按公司Exhibitors
表進行分組。
Curerntly我使用這個:
SELECT t2.ExhibitorID, t2.Company, t2.Username, t1.Count
FROM exhibitors AS t2
, (SELECT ExhibitorID, COUNT(*) AS Count
FROM leads AS l
WHERE l.ContractorID = 100
AND l.ShowID = "20120228AB"
GROUP BY l.ExhibitorID
ORDER BY COUNT(*) DESC
LIMIT 20) AS t1
WHERE t2.ExhibitorID = t1.ExhibitorID
ORDER BY t1.Count DESC
但它沒有按公司。感謝你的幫助。
首先,我會更改您的查詢以使用正確的ANSI JOIN語法。 INNER/LEFT/RIGHT JOIN – Taryn 2012-03-20 15:56:59
此外,我不認爲你想要一個'LEFT JOIN',因爲你會得到零頭數(或參展商),這將不計算在內。我認爲你正在尋找'INNER JOIN' – swasheck 2012-03-20 16:05:34
@swasheck除非公司有可能有0個相關的線索,並且他想要得到該公司返回的0個點數......在這種情況下,他會想要一個「左邊join'。 – 2012-03-20 16:07:35