查詢:對某一欄位去重,並獲得其他欄位資訊
想在table1表中,查公司中的員工名字有哪些,table1表中員工有重名的情況,所以要對員工名去重,並且要得到員工名字、及其對應的部門號dept_id
即:對name欄位去重,並獲得name, dept_id 欄位
在thinkphp3.2 中
$table1= M('table1');
使用下面方法:
$result = $table1 -> where ( $where )
->field ( 'name,dept_id' )
->distinct(true)
->order('create_time desc') //排序
->select ();
解決:
$result = $table1 -> where ( $where )
->field ( 'name,dept_id' )
->group('name')
->order('create_time desc') //排序
->select ();
這樣就會去重,預設會取出來每個分組的第一行資料,這樣就達到了對name去重的目的。
在mysql中:
select * from table group by name
因為select後的欄位必須在group by 中出現,暫時先做到查詢出全部資訊
如果SQL語句還有limit,order by等條件,必須放在group by後面。
這樣就達到了既去重,又能夠輸出更多欄位資訊的目的.