我有两个名为NO2_avgtemperature_avg的表,我试图在公共列DATE(100)上连接这些表,但我得到了以下错误.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"DATE(`Date Time`)" = a2."DATE(`Date Time`)"' at line 4

表格信息:

NO2_avg

+----------------------+-------------------+----------+--------------------+
| Location             | DATE(`Date Time`) | COUNT(*) | avg(NO2)           |
+----------------------+-------------------+----------+--------------------+
| Temple Way           | 2017-09-07        |       24 | 27.305995000000006 |
| Parson Street School | 2017-09-07        |       24 | 32.020833333333336 |
| Fishponds Road       | 2017-09-07        |       24 |             39.125 |
| Wells Road           | 2017-09-07        |       24 | 41.354166666666664 |
| Brislington Depot    | 2017-09-07        |       24 |           23.09375 |
+----------------------+-------------------+----------+--------------------+

temperature_avg

+-------------------+----------+-------------------+
| DATE(`Date Time`) | COUNT(*) | avg(Temperature)  |
+-------------------+----------+-------------------+
| 2017-09-07        |       48 | 4.791666666666667 |
| 2022-03-04        |       48 | 5.333333333333333 |
| 2022-03-03        |       48 |            7.5625 |
| 2022-03-02        |       44 | 7.090909090909091 |
| 2022-03-01        |       48 | 5.791666666666667 |
+-------------------+----------+-------------------+

我使用的查询:

SELECT `avg(NO2)`
FROM
     NO2_avg a1
INNER JOIN Temperature_avg a2 ON a1."DATE(`Date Time`)" = a2."DATE(`Date Time`)";

请帮帮我...

推荐答案

听起来这个表是很久以前从一个没有定义列别名的SELECT查询创建的.

首先,我敦促您将列名更改为更易于使用的名称.您可以使用名称包含特殊字符的列,但这是不必要的困难.

MySQL 8.0支持重命名列选项:

mysql> alter table NO2_avg 
 rename column `DATE(``Date Time``)` TO date, 
 rename column `COUNT(*)` to count, 
 rename column `avg(NO2)` to avg;

请注意,您需要对列名进行分隔,而那些包含文字反勾号字符的列名需要将这些字符视为特殊字符,或者将反勾号加倍,或者使用反斜杠对其进行转义.

如果无法重命名列,则必须用回号分隔列名,并如上所述将文字回号视为特殊.

标准SQL支持双引号(")作为标识符分隔符,但在MySQL中,双引号是字符串分隔符,除非您将SQL模式设置为包含ANSI_QUOTESANSI.

Mysql相关问答推荐

MySQL-带有用户定义变量的IF-THEN语句

Mysql-查找缺少列的表

Mysql - Select 匹配某些条件的两条记录之间经过的最大天数

我在连接到 mysql 的 node js 中收到错误消息发送到客户端后无法设置标头

关于设置为 NOT NULL 时的 CHAR 默认值

MySQL 将分组 JSON Select 转换为单个 JSON 对象

MySQL 中的 LATERAL 语法 - 是否只是说左表首先执行以便下一个可以引用它?

将 wordpress 自定义字段转换为单个数组

从 SQL 中的左连接和内连接中减go 计数

如何显示患者预约中的专业人员姓名?

如何使用 Raw SQl / Laravel 进行累积计数 - Eloquent ORM

无法在两个 mysql 表上执行内部联接

如何在不违反唯一约束的情况下交换 MySQL 中两行的值?

让 MySQL 在 OSX 10.7 Lion 上运行

MySQL:在 Select 语句中自动增加临时列

PHP 判断 NULL

基于字符串动态创建 PHP 对象

Ubuntu 中的 MySQL JDBC jar 文件在哪里?

如何从命令行调用带有参数的mysql存储过程?

cron 启动的 mysqldump 和密码安全