• Не работает подзапрос с несколькими полями

    KEKSOV
    @KEKSOV
    С учетом Вашего дополнения запрос нужно немного изменить:
    SELECT seller.title seller_title, rel.price price, dvr.title dvr_title,dvr.id dvr_id FROM com_dvr dvr
    LEFT JOIN com_dvr_relations rel ON dvr.id = rel.item_id
    LEFT JOIN com_dvr_sellers seller ON rel.seller_id = seller.id;
    ORDER BY dvr_title, dvr.id, seller.title, rel.price
    


    И обработать результат следующим образом (пишу на псевдокоде, похожим на PHP ):
    $mysqli = new mysqli("example.com", "user", "password", "database");
    (проверка на ошибку запроса)
    $res = $mysqli->real_query($sql);
    $mysqli->store_result();
    
    // Получаем результат
    $result = array();
    while ($row = $res->fetch_assoc()) 
    {
        $dvrId = $row[  'dvr_id' ];
        if ( !isset($result[$dvrId] )
        {
            $result[ $dvrId ] = array();
            $result[ $dvrId ][ 'dvr_title' ] = $row[ 'dvr_title' ];
            $result[ $dvrId ][ 'sellers' ] = array();
        }
    
        $result[ $dvrId ][ 'sellers' ][] = array(
            'seller_title' => $row[ 'seller_title' ]
           , 'seller_price' => $row['price']
        );
    }
    
    echo "<pre>";
    var_dump( $result );
    
    
    
    Ответ написан
    2 комментария