我不明白。我试图用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前面有一个括号。但如果我这样做,那就错了。我需要在我的工作台上设置一些东西吗?

最佳答案

你的问题不对。您尝试将顶部有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

在这种情况下,如果需要,可以在topSELECT语句中进行额外的计算。

08-18 14:45
查看更多