MySQL并集缺少括号
我不明白。我试图用union来总结两个相同的表格,但它不起作用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
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很抱歉现在更新。