MySQL报错1054:WHERE子句'kvar.nazivKvar'列不存在,但表列实际存在
解决SQL错误码1054:Unknown column 'kvar.nazivKvar' in 'where clause'
这个问题其实很好定位——你的查询语句里引用了kvar.nazivKvar列,但完全没在查询中关联kvar表,数据库自然找不到这个列啦。
问题根源拆解
你当前的SQL只关联了radnik和nalog两个表:
SELECT radnik.*, nalog.prioritetNalog FROM radnik INNER JOIN nalog ON radnik.sifRadnik=nalog.sifRadnik WHERE kvar.nazivKvar ="Zamjena klipa";
但WHERE子句里用到了kvar表的字段,数据库不知道kvar表和现有查询的关联关系,所以直接抛出1054错误。
修正后的SQL示例
你需要把kvar表也加入查询的关联链条里。假设nalog表和kvar表通过sifKvar字段关联(这是常见的外键关联逻辑),修正后的代码如下:
SELECT radnik.*, nalog.prioritetNalog FROM radnik INNER JOIN nalog ON radnik.sifRadnik = nalog.sifRadnik INNER JOIN kvar ON nalog.sifKvar = kvar.sifKvar -- 替换成你实际的关联字段 WHERE kvar.nazivKvar = "Zamjena klipa";
如果kvar表是和radnik直接关联,就调整JOIN的关联对象和条件,核心原则是必须在FROM/JOIN部分包含kvar表,建立它与现有表的关联关系。
小提示
要是不确定关联字段,可以用DESCRIBE kvar;和DESCRIBE nalog;命令查看表结构,找到两个表之间的外键关联字段后替换到JOIN条件里就行。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

