我有一个关于值等于或大于其他表值的问题。 我想要做的是检查角色是否符合人才所拥有的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'
你会建议我做什么?
答案 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子句中使用所有表。
你错过了一个“。”在第二个查询的连接中。