【问题标题】:syntax error when trying to excute select with left join尝试使用左连接执行选择时出现语法错误
【发布时间】:2021-09-24 09:02:11
【问题描述】:

我的数据库有 3 个表,如下所示: 第一个表是 渠道: 编号 |姓名 |链接 | group_id

第二张表是: : 编号 |集团 |状态

我正在尝试查询:

选择 channels.id、channels.group_id、channels.name、channels.link、 group.group FROM 通道 AS 通道 LEFT JOIN 组 AS 组 ON channels.group_id = group.id

即使我没有像这样尝试过(AS):

选择 channels.id、channels.group_id、channels.name、channels.link、 group.group FROM channels LEFT JOIN group ON channels.group_id = group.id

但我得到的只是

选择 channels.id、channels.group_id、channels.name、channels.link、 group.group FROM 通道 AS 通道 LEFT JOIN 组 AS 组 ON channels.group_id = group.id

1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解要使用的正确语法 第 3 行的“group AS group ON channels.group_id = group.id”附近 时间:0s

有人可以告诉我我的查询有什么问题吗?

非常感谢@Akina,问题是我为我的表组使用了保留字,我只是更改了名称,现在一切正常。 问候

【问题讨论】:

  • JOIN group AS group - AS group 不属于这里。还有FROM channels AS channels.
  • 谢谢,但我尝试过使用 (AS) 和不使用它,两者都给出了相同的结果。这里再试一次,SELECT channels.id, channels.group_id, channels.name, channels.link, group.group FROM channels LEFT JOIN group ON channels.group_id = group.id
  • GROUP 是保留字。用反引号引用它或重命名表(首选)。
  • 是的,正如@Akina 所说,GROUPGROUP BY 的一部分,所以你的表名很不幸。
  • 非常感谢@Akina;在两个小时的挣扎之后,你成就了我的一天 ::: :-)

标签: mysql


【解决方案1】:
SELECT  channels.id,
    channels.group_id,
    channels.name,
    channels.link,
    group.group
FROM    channels AS channels 
LEFT JOIN `group` AS `group` 
ON channels.group_id = group.id

使用这个反引号(`)

【讨论】:

  • 不是关于滴答声,我已经尝试过但没有用,但正如@Akina 提到的错误是我为我的表(组)使用了保留字,我只是更改了表名和所有现在工作
  • 实际上 Safwan,您可以使用 dev.mysql.com/doc/refman/8.0/en/keywords.html 中所述的反引号来做到这一点。但是,是的,更改名称是一个不错的选择:)
  • 非常感谢@sukalogika。是的,现在你完全正确,只有保留字组应该用刻度包围。
【解决方案2】:

没有意义

JOIN group AS groupFROM channels AS channels

因为AS 的唯一目的是定义一个别名。如果你想通过原始表名来引用,那么只需省略AS

SELECT channels.id, channels.group_id, channels.name, channels.link, group.group FROM channels 
LEFT JOIN `group` ON channels.group_id = group.id

UPD 还必须引用 group,因为它是保留字

【讨论】:

  • 我使用它是因为我确实需要一个别名,但我在这里写的最短,但正如@Akina 所说,我认为 group 是一个保留字,这就是为什么
  • 哦,对了。 group 显然必须引用:)
猜你喜欢
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 2020-05-05
  • 2023-03-09
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
相关资源
最近更新 更多