Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&SQL:子查询不工作_Php_Mysql_Subquery - Fatal编程技术网

PHP&SQL:子查询不工作

PHP&SQL:子查询不工作,php,mysql,subquery,Php,Mysql,Subquery,我有以下带有子查询的查询,这是php代码: $staticsQuery = "SELECT * FROM statics WHERE mmsi = (SELECT mmsi FROM positions,active WHERE active.mmsi = positions.position_ID)"; $staticsResult = mysql_query($staticsQuery); while($rows = mysql_fetch_array($staticsRes

我有以下带有子查询的查询,这是php代码:

$staticsQuery = "SELECT * FROM statics WHERE mmsi = (SELECT mmsi FROM positions,active WHERE active.mmsi = positions.position_ID)";
$staticsResult = mysql_query($staticsQuery);
        while($rows = mysql_fetch_array($staticsResult)){
            echo $rows['time'];
            echo $rows['mmsi'];
            echo $rows['name'];
            echo $rows['imo'];
        }
子查询部分正常工作,打印结果。我不确定此外部查询部分是否正确: 从mmsi所在的statics中选择*=

这就是我的错误

警告:mysql_fetch_数组期望参数1是resource,布尔值在第44行的C:\xampp\htdocs\retrieve.php中给出

错误显然来自mysql\u fetch\u数组,因为查询不返回结果。请不要将此问题标记为重复问题,因为此错误消息可能存在许多不同类型的问题


欢迎任何帮助

如果您将有多个结果,您需要在not=

中以两种方式重写它

1修复要在中使用的子查询

选择*从静态,其中mmsi在选择mmsi从位置,活动,其中活动。mmsi=位置。位置\u ID

2使用联接而不是子查询

从statics中选择s.* s.mmsi=p.mssi上的内部连接位置p
p.position\u ID=a.mmsi上的内部连接活动a

在何处尝试mmsiINsubquery@Khalid这要归功于你,因为它不会有多个结果,所以我认为=运算符很好。请尝试详细说明,并解释为什么你的解决方案很好,我的解决方案到目前为止还不起作用。=运算符也不起作用,但是如果Khalid说如果你有多个结果,你必须使用'IN'而不是'=',那么我认为'='是正确的。我尝试了'IN'而不是'=',但那不起作用。对于连接,同样也不起作用。谢谢你