2012-01-24 5 views
1

私の問題は DescriptionのidがAdvertistment'sの列であるすべての広告を取得したいと考えています。最初の列idが他の列のデータを取得し、他の列が等しい場合

Advertistment列がDescription列に接続されているとします。 type_of_houseという列の1つがmと等しいすべての説明のIDを取得したいと考えています。 次に、広告主のidが説明のidと等しいすべての広告主を表示します。短いように

:advertistmentは家についての情報を示し、説明ストアの家はDとMを入力し、私はこれが正しいSQLであるM.

の家タイプで、すべてのadvertistmentsを示したい:

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

関連する問題