如何在 sql 查询中连接 table 的两行?
How to concatenate two rows of a table in sql query?
在我的 employees
table 中,我有三个字段 first_name
、last_name
、middle_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}
在我的 employees
table 中,我有三个字段 first_name
、last_name
、middle_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}