错误组按 PHP + MSSQL


$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']}");

结果:

受保护的"消息"=>字符串"SQLSTATE[42000]:[Microsoft][SQL Server 的 ODBC 驱动程序 11][SQL Server]列"an_promobar.promo_title"在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。(长度=217(

有人可以帮助我吗?

当你使用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']}");

最新更新