2017-01-31 2 views
0

PHP zend framework에서 쿼리를 작성하여 세 테이블 직원, 제품, 입찰에 참여한 쿼리를 작성했습니다. 제품 테이블에 구매자 직원 ID를 저장하고 (판매자 이름, 열 이름 ename에서 가져온) 판매자 이름의 세부 정보를 표시하는 열 구매자가 있으며 제품 테이블에서 구매자 ID를 가져 와서 구매자 이름을 표시해야합니다. 직원 테이블에서 ename과 일치합니다. 내 SQL 쿼리는 아래와 같습니다. 위의 기능은 정상적으로 작동합니다.zend 프레임 워크의 다른 테이블에서 가져온 ID에 해당하는 테이블에서 이름을 얻는 방법

$oSelect = $this->select() 
      ->setIntegrityCheck(false) 
      ->from(array("p" => "products","b" => "bid"), ('*')) 
      ->joinLeft(array("b" => "bid"), "b.product_id=p.product_id", array('bid_id','bid_amount')) 
      ->joinInner(array("e" => "employees"), "e.employee_id=p.employee_id",array('ename')) 
      ->where("p.verified = ?", "Yes") 
      ->where("p.sold_out = ?", "Yes") 
      ->group('p.product_id') 
      ->having("p.sale_end_date >= ?", date("Y-m-d")); 

누구든지이 쿼리에 위의 기능을 추가 할 수 있도록 도와줍니다.

답변

0
Select query will be like this for displaying buyername 

$oSelect = $this->select() 
      ->setIntegrityCheck(false) 
      ->from(array("p" => "products","b" => "bid"), ('*')) 
      ->joinLeft(array("b" => "bid"), "b.product_id=p.product_id", array('bid_id','bid_amount')) 
      ->joinLeft(array("e" => "employees"), "e.employee_id=p.employee_id",array('ename')) 
->joinLeft(array("e1" => "employees"), "e1.employee_id=p.buyer_id",array('buyer_name' => 'ename')) 
      ->where("p.verified = ?", "Yes") 
      ->where("p.sold_out = ?", "Yes") 
      ->group('p.product_id') 
      ->having("p.sale_end_date >= ?", date("Y-m-d"));