MySQL并集缺少括号

MySQL并集缺少括号,mysql,sql,Mysql,Sql,我不明白。我试图用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

我不明白。我试图用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 
    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;

在MySQL中,如果您想汇总来自不同数据集的相同值,则需要使用关键字ALL,因为只有union将汇总唯一数据集中的数据集,并对其应用DISTINCT。 您的查询应如下所示:

SELECT date,sum FROM t_fb_data Union ALL SELECT date,sum FROM t_google_data

你肯定可以使用UNION, 但如果你只想坚持工会,那就试试这个

SELECT * 
  FROM 
     ( SELECT date
            , sum, 'fb' identifier 
         FROM t_fb_data
     ) T1 
 Union 
     ( SELECT date
            , sum, 'google' identifier 
         FROM t_google_data
     ) T2 
这是因为,来自两个查询的数据将提供相同的记录,这些记录将合并到单个记录中,因此,如果要编写identifer,则两个表将具有不同的记录

我希望这会有所帮助

编辑

 ( SELECT date
            , sum, 'fb' identifier 
         FROM t_fb_data
     )  
 Union 
     ( SELECT date
            , sum, 'google' identifier 
         FROM t_google_data
     ) 

你的问题是错误的。您尝试合并两个子查询,在顶部有
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

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

我得到这个错误:17:12:49 T2错误代码:1064。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第11行“T2”附近使用的正确语法。实际上,它也可以与union一起使用。问题是,如果我想添加一些WHere子句,或者如果我想对数据进行分组,我必须在每个字符串上写入数据。因此,您必须在两个查询上放置其他列,以便使它们在内联视图之外可见。第一个行得通。但是如果我想添加一些where子句,我必须在每个子查询上都这样做。第二个需要在每个服务器上都有自己的别名select@nicoschuck很抱歉现在更新。