好吧,我被困在一个问题上。将五张桌子连在一起
我有大约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