首页 文章

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

提问于
浏览
1

尝试在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 回答

  • 3

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

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

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

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

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

相关问题