“'字段列表中的未知列' (不涉及反叛)

时间:2017-03-26 14:40:07

标签: mysql sql

专辑:AlbumID,Title,Date_created,Date_modified

图片:ImageID,标题,信用

Together:AlbumID,ImageID

SELECT `Images.ImageID` 
FROM `Images` LEFT OUTER JOIN `Together` 
      ON Images.ImageID=Together.ImageID 
WHERE Together.ImageID IS NULL

但是当我输入查询时,它会将其更改为:

SELECT `Images.ImageID` 
FROM `Images` LEFT OUTER JOIN `Together` 
      ON Images.ImageID=Together.ImageID 
WHERE Together.ImageID IS NULL LIMIT 0, 25

并给我错误:     #1054 - Unknown column 'Images.ImageID' in 'field list'

我已经用同样的问题看了其他人的问题,但他们所有人的解决方案似乎是他们使用的是单引号而不是反引号。

1 个答案:

答案 0 :(得分:2)

不要转义不需要转义的名称。另外,学习使用表别名。它们使查询更容易编写和阅读。所以:

SELECT i.ImageID 
FROM Images i LEFT OUTER JOIN
     Together t 
     ON i.ImageID = t.ImageID 
WHERE t.ImageID IS NULL;

当你写:

SELECT `Images.ImageID`

MySQL正在寻找一个名为“Images.ImageID”的列。它不会在ImageId中查找Images,因为您已将它们包含在反引号中,后者表示它们是一个标识符。