这里是我的查询:联盟选择列不匹配
SELECT
FROM_UNIXTIME(date_added, '%m-%d-%Y') AS formatted_date,
SUM(tb =1) AS sum_users,
SUM(tb =2) AS sum_links,
SUM(tb =3) AS sum_ads,
SUM(tb =4) AS sum_actions
FROM (
SELECT date_added, 1 AS tb
FROM users_list WHERE 1=1
UNION ALL
SELECT date_added, 2
FROM users_links WHERE 1=1
UNION ALL
SELECT date_served, 3
FROM ads_served WHERE 1=1
UNION ALL
SELECT date_served, 4
FROM actions WHERE 1=1
) AS t
GROUP BY formatted_date
ORDER BY formatted_date DESC
这里是我的表中的数据:
users_list
id date_added
1 1234567890
2 1334567890
3 1434567890
users_links
id date_added
1 1244567890
2 1354567890
3 1464567890
ads_served
个id date_served revenue
1 1234567891 0.01
2 1334567892 0.02
3 1434567893 0.02
行动
id date_served
1 1234561890
2 1334562890
3 1434563890
我想总结的收入FORMATTED_DATE在ads_served表作为输出查询第6列。我失去了从哪里开始。如果我将总和(收入)添加到工会选择我得到一个“列不匹配”错误。
doh!应该想到这一点。这工作! – reefine 2011-05-03 00:08:49
“as total”后面应该有一个逗号btw – reefine 2011-05-03 00:09:14
为了这个例子,我忘了编辑WHERE 1 = 1。在代码中,应用于每个SELECT语句的过滤器。我使用“1 = 1”来确保下面的过滤器在前面有“和”以便更容易地应用过滤器。 – reefine 2011-05-03 00:10:45