繁体   English   中英

'on子句'中的MySQL未知列:(

[英]MySQL Unknown column in 'on clause' :(

我的查询看起来像

SELECT а.*, m.username, m.picture, m.picture_active
FROM questions_answer AS а 
INNER JOIN members AS m ON а.poster_id=m.member_id
INNER JOIN questions AS q ON q.question_id=a.question_id
ORDER BY a.postdate DESC

我收到错误消息:

Unknown column 'a.question_id' in 'on clause'

我不知道怎么了,请帮我解决这个问题。

questions

CREATE TABLE IF NOT EXISTS `questions` (
  `question_id` int(9) unsigned NOT NULL AUTO_INCREMENT,
  `member_id` int(9) unsigned NOT NULL DEFAULT '0',
  `question` text NOT NULL,
  `postdate` int(10) unsigned NOT NULL DEFAULT '0',
  `active` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`question_id`),
  KEY `member_id` (`member_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

questions_answer

CREATE TABLE IF NOT EXISTS `questions_answer` (
  `answer_id` bigint(12) unsigned NOT NULL AUTO_INCREMENT,
  `question_id` int(9) unsigned NOT NULL,
  `poster_id` int(9) unsigned NOT NULL,
  `body` text NOT NULL,
  `postdate` int(9) unsigned NOT NULL,
  PRIMARY KEY (`answer_id`),
  KEY `question_id` (`question_id`),
  KEY `poster_id` (`poster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

您的表questions_answer可能没有列question_id

似乎您没有a.question_id列

检查该表的结构。

没有任何叫列question_idquestions_answer表。

有趣的是,如果我使用此代码,它将起作用:

SELECT qa.*
FROM questions_answer qa
INNER JOIN questions q ON qa.question_id = q.question_id
ORDER BY qa.postdate DESC

SQL提琴

因此,要将其应用于您的查询:

SELECT qa.*, m.username, m.picture, m.picture_active
FROM questions_answer qa
INNER JOIN questions q ON qa.question_id = q.question_id
INNER JOIN members m ON qa.poster_id = m.member_id
ORDER BY qa.postdate DESC

您的questions_answer表别名a存在一些问题。 这很可能不是字母a

FROM questions_answer AS а 

我在玩弄它,发现一个错误,提示“ Unknown table 'аa':如您所见,它可能是一个特殊字符。 网上的简短搜索结果是字母Eth

我用字符a替换了alias ,查询工作正常。

SELECT a.*, m.username, m.picture, m.picture_active
FROM questions_answer AS a
INNER JOIN members AS m ON a.poster_id=m.member_id
INNER JOIN questions AS q ON q.question_id=a.question_id
ORDER BY a.postdate DESC

在此处查看示例,只需将查询复制粘贴到此处并尝试运行,由于alias字符问题,它将抱怨。 从你行,并更换所有你甚至可以复制别名a与它S,它也能发挥作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM