'where子句'中的未知列,而列存在MySQL

时间:2014-06-01 15:38:31

标签: php mysql phpmyadmin

尝试在phpmyadmin中运行SQL查询时,我遇到了一个奇怪的问题。 我的疑问:

SELECT * FROM Dozen 
WHERE Dozen.registered = '1' 
AND Dozen.DoosID = Klant_Doos.DoosID 
AND Klant_Doos.KlantID = '1'

当在phpmyadmin中在正确的数据库中运行它并且Klant_Doos列存在时,它会返回以下错误。

1054 - 'where子句'中的未知列'Klant_Doos.DoosID'

我一直在做一些测试,这个问题似乎只在我使用

时出现
Table.Column = OtherTable.OtherColumn

如果我使用

Table.Column = 'Value'

它返回结果就好了。

是我的语法还是我刚发现phpmyadmin中的错误?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您似乎在from子句中缺少表引用。这是你想要做的吗?

SELECT *
FROM Dozen JOIN
     Klant_Doos
     ON Dozen.DoosID = Klant_Doos.DoosID 
WHERE Dozen.registered = '1' AND
      Klant_Doos.KlantID = '1';

答案 1 :(得分:1)

这也可以通过在Klant_Doos子句中指定SELECT表来轻松解决:

SELECT * FROM Dozen, Klant_Doos 
WHERE Dozen.registered = '1' 
AND Dozen.DoosID = Klant_Doos.DoosID 
AND Klant_Doos.KlantID = '1'

然而,编写此类查询的更常见(和显式)方式是执行JOIN