如何在 sql 查询中连接 table 的两行?

How to concatenate two rows of a table in sql query?

在我的 employees table 中,我有三个字段 first_namelast_namemiddle_name。我按如下方式使用了 csqldataprovider。我想显示员工的全名。即,first_name+last_name+middle_name。所以我这样尝试 employees.concat(first_name,last_name,middle_name) 它给了我一个错误,即员工中没有名为 concat 的字段。

$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  ) );

如何连接 name

使用CONCAT_WS:

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

所以查询将是:

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}