我正在尝试创建新表格new_data
,我将在其中存储来自两个不同表格的广告系列数据
。我有一个表格{ - {1}},其中列campaign_revenue
表示数据日期,另一列表示data_date
。
在另一个表格中revenue
我有列campaign_manager
和revenue
。所以我想要的是加入这两个表,并将revenue_yesterday
和revenue
从revenue_yesterday
转移到campaign_revenue
。
结果表中的新记录应如下所示:
new_data
campaign_id | campaign_name | revenue | revenue_yesterday
我们看到的实际上是来自43243242 | testing name | 109.02 | 159.43
的两个记录,以及来自campaign_revenue
的每个日期和广告系列ID和名称。
我一直在尝试很少的变化,但基于此answer
我的最后一次尝试是这样的:
campaign_manager
它显然没有用,但我希望它能帮助我理解我想要实现的目标...... thx
答案 0 :(得分:2)
自我加入似乎就是你的想法。您可以两次加入campaign_revenue
表,一次是今天的收入,一次是昨天的收入。
SELECT
cm.campaign_id,
cm.campaign_name,
cr1.data_date,
cr1.revenue AS revenue_today,
cr2.revenue AS revenue_yesterday
FROM campaign_manager cm
INNER JOIN campaign_revenue cr1
ON cm.campaign_id = cr1.campaign_id
LEFT JOIN campaign_revenue cr2
ON cm.campaign_id = cr2.campaign_id AND
cr1.data_date = DATE_ADD(cr2.data_date, INTERVAL 1 DAY)
-- WHERE cr1.data_date = CURDATE()
此答案假定您的日期是连续的,也就是说,没有错过日期。
答案 1 :(得分:0)
尝试以下查询:
SELECT campaign_id, campaign_name FROM campaign_manager WHERE data_date IN ('2018-02-13', '2018-01-14', '2017-02-15')
UNION
SELECT title FROM data_table WHERE title IN ('2018-02-13', '2018-01-14')
您需要使用带有union关键字的两个查询。
供参考:您可以转到“UNION Syntax”