ध्यान रहे, मैं Zend-Framework से परिचित नहीं हूं, इसलिए आपको इसे थोड़ा सा अनुकूलित करना पड़ सकता है। लेकिन आपको Brands
का उपयोग करने की आवश्यकता है प्राथमिक/प्रथम तालिका के रूप में, ताकि वह पहले उस तालिका के सभी रिकॉर्ड प्राप्त कर सके, फिर उसे शेष तालिकाओं से मिला दें।
public function getUserBrands($userId) {
$select = new Select();
$select->from(array('b' => 'brands'));
$select->join(array('bu' => $this->table), 'bu.brandId = b.id', array('id','name'),Select::JOIN_LEFT);
$select->join(array('u' => 'users'), 'u.id = bu.userId', array('id','username'),Select::JOIN_LEFT);
$where = new Where();
$where->equalTo("bu.userId",$userId);
$select->where($where);
return $this->branduserTable->selectWith($select)->toArray();
}