gpt4 book ai didi

mysql - 为什么在简单的 select 语句上使用表别名时 MySQL 会出错?

转载 作者:行者123 更新时间:2023-11-29 12:48:06 25 4
gpt4 key购买 nike

我正在使用 phpmyadmin 来测试一些 MySQL 查询。我正在尝试编写一个更大的嵌套查询,该查询由于无法识别的表别名而失败,因此我正在尝试调试其中的较小部分。但是,当我有时尝试使用表别名时,我会遇到令人困惑的错误。

您能解释一下为什么其中一些查询会抛出错误吗?

SELECT * FROM table1 AS tablealias1(有效)

SELECT * FROM table1 GROUP BY userid(有效)

SELECT * FROM table1 GROUP BY userid AS tablealias1(错误:#1064 - 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解要使用的正确语法靠近 'AS tablealias1LIMIT 0, 第 1 行 25')

SELECT * FROM table1 WHERE userid=1(有效)

SELECT * FROM table1 WHERE userid=1 AS tablealias1(与上面相同的错误)

(SELECT * FROM table1 WHERE userid=1) AS tablealias1 (与上面相同的错误)

最佳答案

您将事物别名为:

  • 重命名列显示的名称
  • 给它一个引用名称,以便以后在查询语句中的其他地方使用(无论您显式还是隐式地使用它 - 只要它可以在其他地方使用)

如果您两者都不做,则别名就没有意义。除非在子查询中使用,否则您无法为结果集添加别名,那么您需要一个别名来引用它。

这会起作用:

 Select * FROM (SELECT * FROM table1 WHERE userid=1) AS tablealias1

正如它所暗示的

  Select tablealias1.* FROM (SELECT * FROM table1 WHERE userid=1) AS tablealias1

单独来说,这是垃圾:

  (SELECT * FROM table1 WHERE userid=1) AS tablealias1

关于mysql - 为什么在简单的 select 语句上使用表别名时 MySQL 会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com