【问题标题】:cake php how do a good query蛋糕php如何做一个好的查询
【发布时间】:2015-06-04 07:40:36
【问题描述】:

我有一个问题,我是 cakePHP 的菜鸟,我使用 cakePHP 1.3,我有一个带有很多子查询的查询,并尝试使用 find 句子或类似的东西将其转换为 cake 的 queryBuilder:

我的查询是下一个:

选择 `PbFeedback`.`id`, `PbFeedback`.`createdby`, `PbFeedback`.`created`, `PbFeedback`.`msg`, `Usuario`.`名称`, `PbFeedback`.`tipo`, COUNT(IF(PbFeedback.msg = 0, 1, 0))AS totalMsg, `Entidad`.`名词` ,UltimoMensaje.* , #Subconsulta MensajeNuevo.* #Subconsulta 从 # A A `eon_feedback` AS `PbFeedback` 左连接 # B B `eon_sys_usuarios` AS `Usuario` ON(`PbFeedback`.`createdby` = `Usuario`.`id`) LEFT JOIN `eon_entidades` AS `Entidad` ON( `PbFeedback`.`entidad_id` = `Entidad`.`id` ) 左连接(选择 `F`.`createdby`, `F`.`创建的`, `F`.`msg`, `F`.`tipo` FROM eon_feedback AS `F` GROUP BY `F`.`createdby` ORDER BY F.created DESC ) AS UltimoMensaje ON (UltimoMensaje.createdby = `PbFeedback`.`createdby`) 左连接( 选择 F.createdby AS usuario_id, 计数(*)作为`计数` 从 `eon_feedback` AS `F` WHERE `F`.`status` = 0 GROUP BY F.createdby ) 作为 MensajeNuevo ON MensajeNuevo.usuario_id = PbFeedback.createdby 在哪里 `PbFeedback`.`usuario_id` = 0 通过...分组 `PbFeedback`.`createdby` 订购方式 `PbFeedback`.`createdby` ASC 限制 0, 30;

谢谢 ;)

【问题讨论】:

    标签: mysql sql cakephp-1.3


    【解决方案1】:

    我建议您查看 ContainableBehavior

    http://book.cakephp.org/1.3/en/The-Manual/Core-Behaviors/Containable.html

    Containable 允许您轻松构建复杂的查询,例如:

    $this->PbFeedback->find('all', array(
        'contain' => array (
            'Usuario',
            'UltimoMensaje ',
            'eon_feedback' => array (
                'fields' => array ('created','msg','tipo'),
                'conditions' => array ('eon_feedback.status =' => '0')
            )
        ),
        'limit' => 30
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多