错误GroupBy PHP + MSSQL

时间:2018-01-10 08:49:30

标签: php sql-server

$Read->FullRead("SELECT an_promo_page_tipo_blocos.title,"
            . "an_promo_page_tipo_blocos.img,"
            . "an_promo_bloco_anexo.status,"
            . "an_promo_bloco_anexo.pg_id,"
            . "an_promo_bloco_anexo.id,"
            . "an_promo_bloco_anexo.promo_id,"
            . "an_promo_bloco_anexo.tipo_bloco,"
            . "an_promo_bloco_anexo.bloco_id "
            . "FROM an_promo_bloco_anexo "
            . "INNER JOIN an_promo_page "
            . "ON "
            . "an_promo_bloco_anexo.pg_id = an_promo_page.pg_id"
            . " INNER JOIN an_promo_page_tipo_blocos ON an_promo_bloco_anexo.tipo_bloco = an_promo_page_tipo_blocos.id "
            . "WHERE an_promo_bloco_anexo.promo_id = :pro AND an_promo_bloco_anexo.pg_id = :pi"
            . " AND an_promo_bloco_anexo.pg_tipo = :pt ORDER BY an_promo_bloco_anexo.ordem, an_promo_page_tipo_blocos.title"
            . " AND GROUP BY "
            . "an_promo_page_tipo_blocos,"
            . "an_promo_bloco_anexo"
            . "", "pro={$PromoId}&pi={$p['pg_id']}&pt={$p['pg_tipo']}");

结果:

protected'message'=> string'SQLSTATE [42000]:[Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]列'an_promobar.promo_title'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。 “ (长度= 217)

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:1)

当您使用GROUP BY时,您需要按照您未使用聚合函数的所有字段进行分组(例如:SUMMAX等。

GROUP BY也不是WHERE条款的一部分;它孤立无援。

鉴于您的查询没有汇总功能,我不明白您为什么要使用GROUP BY

试试这个。

$Read->FullRead("SELECT an_promo_page_tipo_blocos.title,"
        . "an_promo_page_tipo_blocos.img,"
        . "an_promo_bloco_anexo.status,"
        . "an_promo_bloco_anexo.pg_id,"
        . "an_promo_bloco_anexo.id,"
        . "an_promo_bloco_anexo.promo_id,"
        . "an_promo_bloco_anexo.tipo_bloco,"
        . "an_promo_bloco_anexo.bloco_id "
        . "FROM an_promo_bloco_anexo "
        . "INNER JOIN an_promo_page "
        . "ON "
        . "an_promo_bloco_anexo.pg_id = an_promo_page.pg_id"
        . " INNER JOIN an_promo_page_tipo_blocos ON an_promo_bloco_anexo.tipo_bloco = an_promo_page_tipo_blocos.id "
        . "WHERE an_promo_bloco_anexo.promo_id = :pro AND an_promo_bloco_anexo.pg_id = :pi"
        . " AND an_promo_bloco_anexo.pg_tipo = :pt ORDER BY an_promo_bloco_anexo.ordem, an_promo_page_tipo_blocos.title"    
        . "", "pro={$PromoId}&pi={$p['pg_id']}&pt={$p['pg_tipo']}");