【问题标题】:Column 'size' in field list is ambiguous字段列表中的列“大小”不明确
【发布时间】:2017-10-04 00:48:50
【问题描述】:

无效的 SQL:

SELECT
 info_hash,
 size,
 comment,
 created_by,
 announce_list,
 completed_by, 
 completed,
 seeders,
 leechers,
 ulspeed,
 dlspeed,
 dateline,
 thumbnail_dateline, 
 filename,
 filesize,
 visible,
 attachmentid,
 counter,
 postid, 
 IF(thumbnail_filesize > 0, 1, 0) AS hasthumbnail,
 thumbnail_filesize,
 attachmenttype.thumbnail AS build_thumbnail,
 attachmenttype.newwindow
FROM attachment
LEFT JOIN attachmenttype AS attachmenttype USING (extension)
WHERE postid IN (-1,2)
ORDER BY attachmentid;

MySQL 错误:字段列表中的列“大小”不明确 错误号:1052

【问题讨论】:

  • 你的问题是什么?
  • 您可以修改您的请求以使其更易于阅读吗?我认为您不需要选择无数列来获取语法错误。

标签: mysql sql mysql-error-1052


【解决方案1】:

这意味着size 可能同时存在于attachmentattachmenttype 中。

如果您限定列名,那么您将永远不会遇到此类问题。

【讨论】:

  • 如何限定列名你能简要解释一下吗
  • attachmenttype.thumbnail 是一个限定的列名,因为它指定了它来自的表。我会使用表别名来缩短限定条件,但这是相同的想法。
  • 告诉我在 sql 查询上运行什么我对 sql 一无所知
【解决方案2】:

@GordonLinoff 有正确的答案。但是,如果您只是从某个地方复制此代码,那么您将很难理解他在说什么。 (问得好也更好)。

以此为基础。请注意我是如何将 A. 添加到 size 的。如果任何字段再次不正确,您必须添加 A.T.

SELECT info_hash, 
 A.size,
 comment,
 created_by,
 announce_list,
 completed_by, 
 completed, 
 seeders, 
 leechers, 
 ulspeed, 
 dlspeed,
 dateline, 
 thumbnail_dateline, 
 filename, 
 filesize, 
 visible,
 attachmentid, 
 counter,
 postid,
 IF(thumbnail_filesize > 0, 1, 0) AS hasthumbnail,
 thumbnail_filesize,
 T.thumbnail AS build_thumbnail, 
 T.newwindow
FROM attachment A
LEFT JOIN attachmenttype AS T USING (extension)
WHERE A.postid IN (-1,2)
ORDER BY A.attachmentid;

【讨论】:

    猜你喜欢
    • 2020-09-01
    • 2020-07-30
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多