从另一列获取数据,其中第一列id等于other,另一列等于X.

时间:2012-01-24 23:12:37

标签: sql zend-framework

我的问题是: 我想获取Description列的ID等于Advertistment's列的所有广告。

假设Advertistment列与Description列相关联。 我想获得所有描述的id,其中一个名为type_of_house的列等于m。 然后显示所有广告代码,其中广告的ID与描述的ID相等。

简而言之:广告显示房屋信息,描述商店房屋类型D和M,我希望显示所有房屋类型为M的广告。

这是正确的sql:

SELECT * FROM advertistment, description WHERE advertistment.id_advertistment = description.id_description AND description.type_of_house = "m"

我不知道如何将它写入zend。我尝试过类似的东西。我在模型文件夹中写的这个函数。

public function takeAll() {
    $select = $this->_db->select();
    $select->from(array('a' => 'advertistment', 'd' => 'description'));
    $select->where('a.id_advertistment = d.id_description AND d.type_of_house = m');
    return $select->query()->fetchAll();
}

1 个答案:

答案 0 :(得分:0)

你其实非常接近。这应该有效:

public function takeAll() {
    $select = $this->_db->select();
    $select->from(array('a' => 'advertistment'));
    $select->join(array('d' => 'description'), 'a.id_advertistment = d.id_description');
    $select->where('d.type_of_house = ?', 'm');

    return $this->_db->fetchAll($select);
}