2012-01-24 37 views
1

我的問題是: 我想獲得所有廣告發布,其中Description列的ID等於Advertistment's列。從另一列獲取數據,其中第一列id等於other,其他列等於X

假設Advertistment列與Description列連接。 我想獲得所有說明的ID,其中一列名爲type_of_house的列等於m。 然後顯示廣告的ID與描述ID相同的所有廣告。

簡而言之方式:advertistment顯示關於房子的信息,說明店內提供鍵入d和M,我想表明的房屋類型M的所有advertistments

這是正確的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(); 
} 
+0

什麼不行? –

+0

sql查詢的作品,我不知道如何寫這個sql到zend db命令 – deadfish

回答

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); 
} 
+0

謝謝你這麼多:)! – deadfish

相關問題