【问题标题】:SQL: Column is ambigiousSQL:列不明确
【发布时间】:2014-06-11 23:51:40
【问题描述】:

我有以下 SQL 查询,其中有一个子查询:

SELECT * FROM `statics` WHERE `mmsi`= 
(SELECT `mmsi` FROM `positions`,`active` 
WHERE `active.mmsi` = `positions.position_ID`);

但是当我执行它时,我得到以下错误:

1052 - 字段列表中的列“mmsi”不明确

请帮助我调整我的查询。

【问题讨论】:

    标签: php mysql subquery


    【解决方案1】:

    没有看到你的表结构,这是一个疯狂的猜测:

    SELECT * 
    FROM `statics` 
    WHERE `statics.mmsi` = (SELECT `active.mmsi` 
                            FROM `positions`,`active` 
                            WHERE `active.mmsi` = `positions.position_ID`);
    

    但我不明白你为什么要用子查询来做这件事。这应该产生相同的结果

    SELECT statics.* 
    FROM `statics`, `positions`
    WHERE `statics.mmsi` = `positions.position_ID`;
    

    【讨论】:

    • 好吧,我的静态表中有数据,其中包含一个 mmsi 列,其值为 5。在此周围,是一个子查询(对我来说正常工作),它检查并获取 mmsi从另外两个表(活动和职位)。所以这两个表比较一个 mmsi 然后设置它。然后静态表最后会选择它并比较它以显示其值。
    • 这也是我的猜测,但作为解释,子查询中的mmsi 列可能同时存在于positionsactive 表中。
    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多