-1

in my employees table i have three fields first_name, last_name, middle_name. I used an csqldataprovider as follows. I want to display an employee's fullname. ie, first_name+last_name+middle_name. so i tried like this employees.concat(first_name,last_name,middle_name) it gave me an error that no field is there named concat in employees.

$sql    =   "SELECT employee_tasks.task_name as Task, employee_task_log.log as Log,
                            employees.first_name as Name, employee_task_log.id as Id
                    From employee_task_log 
                    Left join employee_tasks ON employee_tasks.id=employee_task_log.task_id 
                    Left join employees ON employees.id=employee_task_log.employee_id 
                    where employee_tasks.id ={$id} " ;

        $dataProvider   =   new CSqlDataProvider( $sql, array( 'keyField' => 'Id', 'pagination'=>false  ) );

how can i concat the name

Bloodhound
  • 2,906
  • 11
  • 37
  • 71

1 Answers1

1

Use CONCAT_WS:

CONCAT_WS(' ', first_name, middle_name, last_name);

So the query would be:

SELECT employee_tasks.task_name as Task, employee_task_log.log as Log,
CONCAT_WS(' ', employees.first_name, employees.middle_name, employees.last_name) as Name,
employee_task_log.id as Id
From employee_task_log 
Left join employee_tasks ON employee_tasks.id=employee_task_log.task_id 
Left join employees ON employees.id=employee_task_log.employee_id 
where employee_tasks.id ={$id}
Pathik Vejani
  • 4,263
  • 8
  • 57
  • 98