【问题标题】:#1054 - Unknown column - backticks issue#1054 - 未知列 - 反引号问题
【发布时间】:2016-02-14 18:39:53
【问题描述】:

基本上,我有这个查询:

SELECT *, `groups`.`goodname`
FROM students AS s
INNER JOIN groups AS g
        ON s.univ_group = g.id
WHERE name LIKE "%А%"

它在查询尝试时出现此错误:#1054 - Unknown column 'groups.goodname' in 'field list'

已经尝试过'groups'.goodname, 'groups.goodname', goodname.'groups', goodname.groups' 在这里代表`,由于 SO 标记的原因)等等。我知道它与这些反引号有关,但我不知道它是如何工作的。谢谢!

【问题讨论】:

  • 在PMA中查询,使用最新版本的MariaDB服务器。是的,我完全确定这个专栏存在:)
  • 当你已经在使用*时是否还需要列

标签: php mysql database mariadb


【解决方案1】:

由于您已将别名添加到'groups'表 - 'g',因此查询不再识别具有groups名称的表,您需要使用别名,因此您需要更改 groups.goodname 转 g.goodname

SELECT *, g.`goodname`
FROM students AS s
INNER JOIN groups AS g
        ON s.univ_group = g.id
WHERE name LIKE "%А%"

【讨论】:

  • 其实没有。但是,如果您想获得一些具有确切或特定名称的字段,您可以这样做。例如 SELECT *, g.goodname AS good_name
  • 同意你的例子
  • 如果它对您有帮助,请接受它作为答案,以便在其他用户遇到此类问题时帮助他们。
  • 其实我不是 OP :p
  • 当您还在SELECT 列表中指定显式列时,* 是否仍然有效?我不这么认为...您需要SELECT s.*, g.*, g.goodname 尽管使用SELECT * 再次选择该列没有多大意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 2012-10-14
  • 2018-04-10
  • 2012-10-08
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
相关资源
最近更新 更多