专辑: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
'
我已经用同样的问题看了其他人的问题,但他们所有人的解决方案似乎是他们使用的是单引号而不是反引号。
答案 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
,因为您已将它们包含在反引号中,后者表示它们是一个标识符。