好吧,我被困在一個問題上。將五張桌子連在一起
我有大約5個數據庫表。一個表格包含一系列廣告系列,另一個表格包含廣告組列表,另一個表格包含廣告列表,另一個表格包含點擊列表,另一個表格包含潛在客戶列表,另一個表格包含潛在客戶列表狀態。 每個表格還有其他欄目。例如,點擊次數中包含ad_id和列帳戶,並且潛在客戶狀態表包含潛在客戶ID,買方和金額。每個表格都有一個ID與另一個表ID相關聯的列。
所以我試圖讓我的數據爲以下格式
campaign keyword count(keyword) sum(amount) buyer
bing-auto rap 15 45 david
google-auto honda 10 30 chris
基本上,這是每一個成功的領導通過關鍵字和廣告進行分組。
但是,我似乎無法解決這個問題。
SELECT keyword, COUNT(keyword) FROM in_clicks AS ic
INNER JOIN ads AS a ON ic.ad_id = a.id
INNER JOIN ad_groups AS ag ON a.ad_group_id = ag.id
INNER JOIN campaigns AS c ON ag.campaign_id = c.id;
INNER JOIN lead_status AS ls ON l.id = ls.id
INNER JOIN leads AS l ON ic.in_click_id = l.id
WHERE ic.create_date LIKE '%2011-08-19%' AND ic.location NOT LIKE '%Littleton%'
GROUP BY ic.keyword ORDER BY COUNT(ic.keyword) DESC
我知道這是不是一個很好的解釋,而我上面的查詢並不好,但我對如何進行一個小卡住。任何人都可以幫助我指出正確的方向。編輯: 這是表格模式。
CAMPAIGN
id name trafficsource createdate
20 hip hop bing 2001-08-16
21 rap bing 2001-08-18
AD GROUPS
id name campaignid createdate
15 jayz 20 2001-08-16
16 eminem 21 2001-08-18
ADS
id headline adgroupid
13 cool is cool 15
14 wow, great 16
IN CLICKS
id keyword adid createdate
205 his name 13 2001-08-16
206 whoa 14 2001-08-18
LEADS
id in_click_id create_date
300 205 2001-08-16
301 206 2001-08-18
LEAD STATUS
id lead_id success amount buyer
501 300 0 5 jack
502 300 1 15 jill
你可以發表你的表模式? –
像%開頭一樣,通常是一個壞主意,因爲它會阻止服務器使用索引。如果ic.create_date是數據類型,請使用例如在之間定義一個開始/結束。 –
是什麼問題? SQL查詢看起來似乎有效,所以它有什麼問題?根據您的描述,您可以輕鬆地將缺失的列添加到您的SELECT中。 – 2011-08-23 19:13:18