我不明白。我试着把两张相同的表和union放在一起,但是它不起作用。
t_fb_data:
id | date | sum
---------------------
1 | 2017.01.01| 2
2 | 2017.01.02| 1
t_google_data:
id | date | sum
---------------------
1 | 2017.01.01| 7
2 | 2017.01.02| 1
3 | 2017.01.03| 2
result could looks like:
| date | sum
------------------
| 2017.01.01| 2
| 2017.01.02| 1
| 2017.01.01| 7
| 2017.01.02| 1
| 2017.01.03| 2这是我的疑问:
SELECT *
FROM
( SELECT date
, sum
FROM t_fb_data
) T1
Union
( SELECT date
, sum
FROM t_google_data
) T2 T2应该是错误的,因为我的工作台需要在T2前面插入一个括号。但如果我做错了两件事。我必须在我的工作台上设置什么东西吗?
发布于 2017-01-26 16:09:50
你的问题是错的。您尝试合并两个具有SELECT语句的子查询,在顶部引用第一个子查询。
您正在寻找的代码:
SELECT date, sum FROM t_fb_data
UNION
SELECT date, sum FROM t_google_data这将从两个表返回非重复的值。
如果您想要将它用作子查询,可以简单地用另一个SELECT语句包围它,如下例所示:
SELECT sub.*
FROM (
SELECT date, sum FROM t_fb_data
UNION
SELECT date, sum FROM t_google_data
) sub在这种情况下,如果需要,可以在顶级SELECT语句中进行附加计算。
发布于 2017-01-26 15:58:38
只需做:
SELECT
date, sum
FROM
t_fb_data
UNION SELECT
date, sum
FROM
t_google_data或者将其放入子查询中:
SELECT
*
FROM
(SELECT
date, sum
FROM
t_fb_data UNION SELECT
date, sum
FROM
t_google_data) t;发布于 2017-01-26 16:02:48
在MySQL中,如果您想从不同的数据集中总结相同的值,则需要使用关键字ALL,因为只有联合才能在唯一的数据集中总结数据集并在其上应用不同的数据集。您的查询应该如下所示:
SELECT date,sum FROM t_fb_data Union ALL SELECT date,sum FROM t_google_datahttps://stackoverflow.com/questions/41877584
复制相似问题