Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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 多维MySQL结果–子查询作为数组_Php_Mysql_Arrays_Multidimensional Array_Subquery - Fatal编程技术网

Php 多维MySQL结果–子查询作为数组

Php 多维MySQL结果–子查询作为数组,php,mysql,arrays,multidimensional-array,subquery,Php,Mysql,Arrays,Multidimensional Array,Subquery,MySQL查询: SELECT seats, ( SELECT tires, bumpers FROM exterior ) AS stuff FROM interior 我期待的结果是: 0 => [ 'seats' => 'comfort', 'stuff' => [ 0 => [ 'tires' => 'winter', 'bumpers' => '

MySQL查询:

SELECT
    seats,
    ( SELECT tires, bumpers FROM exterior ) AS stuff
FROM
    interior
我期待的结果是:

0 => [
    'seats' => 'comfort',
    'stuff' => [
        0 => [
            'tires' => 'winter',
            'bumpers' => 'front'
        ],
        1 => [
            'tires' => 'summer',
            'bumpers' => 'back'
        ],
        ...
    ]
],
1 => ...
然而,这并没有起作用。错误消息:操作数应包含1列


是否可以按照基本查询的方式/格式获取作为数组返回的子查询结果?或者,这种分组方式仅适用于PHP?谢谢。

解决方案如下:

SELECT seats,
( SELECT CONCAT_WS(',',tires, bumpers) FROM exterior ) AS stuff
FROM interior

// Where $array would be the result of the query

function stringtoarray($string) {
    return explode(',',$string);
}

for($i=0;!empty($array);$i++) {
    $array[''stuff'] = stringtoarray($array[''stuff']);
}

我意识到它们还没有键值,但是您应该能够在这个方法中解决这个问题。

因为您的外部表有多行,所以您不能像这样别名多行:从外部选择轮胎、保险杠作为素材
在子查询中使用limit,或者让我知道内部表和外部表之间的任何关系。如果存在任何关系,则使用join

,这将阻止按照Osvaldas的预期执行查询,这不是错误消息的原因-错误发生在解析过程中,因为它试图返回多个数据列。您的SQL对DBMS毫无意义。既然您已经提供了一个您所期望的示例,那么我们可以对SQL应该是什么样子进行一些猜测,但是示例输出提出的问题和它所回答的问题一样多。也许您可以向我们展示您希望在哪些表中生成输出的数据。这不是太慢了吗@小丑