Where子句错误。

时间:2013-12-13 11:28:56

标签: mysql where-clause

我有一个关于值等于或大于其他表值的问题。 我想要做的是检查角色是否符合人才所拥有的Agi要求。在这种情况下,人才的R_Agi是30.所以我试着这样做:

SELECT character_.Name_, character_.Agi, Talents.R_Agi, Talents.SkillName  
FROM character_, Talents
WHERE character_.Agi >= 30
AND Talents.SkillName = 'ambidextrous';

但是当我改变WHERE character_.Agi> = 30这样一些较小的值时,它也会在低于30时列出字符。我只想显示那些=或大于30的字符。

之后我尝试这样做:

SELECT character_.Name_, character_.Agi, Talents.R_Agi, Talents.SkillName  
FROM character_, Talents
WHERE Talents.SkillName = 'ambidextrous'
AND character_Agi >= talents.R_Agi;

但是收到错误:

Error Code: 1054. Unknown column 'character_Agi' in 'where clause'
你会建议我做什么?

3 个答案:

答案 0 :(得分:3)

我认为你错过了最后一行的.

SELECT character_.Name_, character_.Agi, Talents.R_Agi, Talents.SkillName  
FROM character_, Talents
WHERE Talents.SkillName = 'ambidextrous'
AND character_.Agi >= talents.R_Agi;

答案 1 :(得分:1)

您缺少列限定符。

更改:

AND character_Agi >= talents.R_Agi;

致:

AND character_.Agi >= talents.R_Agi;

答案 2 :(得分:1)

第一次查询中这两个表的连接在哪里?

FROM character_, Talents

尝试使用explict连接,而不是在from子句中使用所有表。

你错过了一个“。”在第二个查询的连接中。