zf聯表查詢

2021-06-09 00:21:34 字數 1413 閱讀 8193

zf支援聯表查詢,並且會經常遇到聯表查詢,具體**寫法如下:

$select = $this->select();

$select->from($this->_name, array('id', 'name'));

$select->distinct();

$select->joinleft($jobname, $jobname.'.enterprise_id='.$this->_name.'.id', array('id as job_id'));

$select->where($this->_name.'.status = 1');

$select->where($jobname.'.status = 0');

$select = $this->select();		//select()生成zend_db_select_pdomysql物件

$select->from($this->_name, array('id', 'name')); //from() 第乙個引數是資料庫表名,第二個引數是要顯示的字段集合

$select->distinct(); //distinct() 去重複

$select->joinleft($jobname, $jobname.'.enterprise_id='.$this->_name.'.id', array('id as job_id')); //joinleft()聯表查詢, 第乙個引數是另乙個資料庫表的名,第二個引數是根據那個字段關聯,第三個引數是本資料庫表要顯示的字段

$select->where($this->_name.'.status = 1'); //where()查詢條件,根據什麼條件查詢

$select->where($jobname.'.status = 0');

$select->group($this->name.'.id'); //group() 分組查詢

輸出的selec語句是

select distinct `enterprise`.`id`, `enterprise`.`name`, `enterprise_job`.`id` as `job_id` from `enterprise` left join `enterprise_job` on enterprise_job.enterprise_id=enterprise.id where (enterprise.status=1) and (enterprise_job.status = 0)
上邊php的$this->_name就是 enterprise表,$jobname就是 enterprise_job表

最後

$result = $this->fetchall($select);	//執行sql語句查詢所有符合條件的

sql聯表查詢

比如 all list 這個表,是包含所有資料的,我們要把整個資料的某些字段查詢出來顯示在列表上 select from all list select 現在我要檢視一條資料,需要根據表 user list 的乙個字段內容,去檢視另外乙個表 info list 的內容 select dept nam...

MySQL聯表查詢

顯示所有員工名字 emp.ename 員工工資 emp.sal 及所在部門的名字 dept.dname 笛卡爾積 emp num dept num 聯表查詢時一定要帶上關聯條件 select ename,sal,dname from emp,dept where emp.deptno dept.de...

sql 語句 聯表查詢

1 replace into 用replace into 替代insert into 根據唯一主鍵判斷 無則插入,有則刪除重新插入 覆蓋 不適用自增id做主鍵。因為會刪除id.2.同表 分銷查詢下級每代的人數 內聯查詢 獲取第二代的人 select a.user name,a.reg time,a....