$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)
任何人都可以帮助我?
答案 0 :(得分:1)
当您使用GROUP BY
时,您需要按照您未使用聚合函数的所有字段进行分组(例如:SUM
,MAX
等。
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']}");