如何将复杂的mysql查询融入zf2

时间:2016-08-03 09:33:59

标签: zend-framework2

我无法使我的查询适合zf2查询,我可以适应简单的连接查询,但我无法编写更复杂的子查询。 请帮我这样做。

SELECT `created_date` FROM `salesmodule_discussed_topic` dt WHERE dt.`meeting_id` IN( 
SELECT ma.`meeting_id` FROM `salesmodule_meeting_agent` ma WHERE ma.`agent_id`=30547
)



public function getLastmeetingdate() {
        $select = new Select();
        $select->from(array('dt' => 'salesmodule_discussed_topic'));
        $select->columns(array('created_date'));
        $select->where(array('ma.`agent_id` => 30547));
        $resultSet = $this->tableGateway->selectWith($select);
        return $resultSet->buffer();
    }

2 个答案:

答案 0 :(得分:2)

之前的示例很糟糕,因为有一个sql injections。您需要使用Select创建子查询。

public function getLastmeetingdate() {
    $subQuery = new Select();
    $subQuery->from(array('ma' => 'salesmodule_meeting_agent'));
    $subQuery->columns(array('meeting_id'));
    $subQuery->where(array('ma.agent_id' => 30547));

    $select = new Select();
    $select->from(array('dt' => 'salesmodule_discussed_topic'));
    $select->columns(array('created_date'));
    $select->where->in('dt.meeting_id', $subQuery);

    return $this->tableGateway->selectWith($select);
}

答案 1 :(得分:-1)

<a-obj-model>