我有以下SQL查询,其中包含子查询:

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


但是当我执行它时,出现以下错误:


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


请帮助我调整查询。

最佳答案

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

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`;

10-05 19:29