[英]Using Group Concat
我对此感到困惑,我想在使用GROUP_CONCAT时选择3表中的所有字段。 我所做的就是这个,但是它什么也没返回。
SELECT
personnel.Task_id AS personnel_Task_id,
personnel.Top_id AS personnel_Top_id,
GROUP_CONCAT(personnel.Personnel) AS Personnel,
project.P_id AS project_P_id,
project.P_name, project.P_manager, project.POC,
project.TSD,
project.TED,
project.ASD AS project_ASD,
project.AED AS project_AED,
project.DT AS project_DT,
project.DA AS project_DA,
project.DV AS project_DV,
task.Task_id AS task_Task_id,
task.Top_id AS task_Top_id,
task.Task_name,
task.Frm,
task.todate,
task.ASD AS task_ASD,
task.AED AS task_AED,
task.P_id AS task_P_id,
task.DT AS task_DT,
task.DA AS task_DA,
task.DV AS task_DV,
task.Completion
FROM project_management.task,
project_management.project,
project_management.personnel
WHERE personnel.Task_id = task.Task_id
AND project.P_id = task.P_id
AND task.Top_id = '$oldID';
您需要将GROUP BY用于组concat让我解释一下
使用GROUP BY时,需要使所有选择列兼容
这意味着您不能选择未分组的列。
您需要在未分组的列上使用分组聚合函数
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
在此示例表中,我们无法直接选择ID
我们可以选择MAX(id)MIN(id)AVG(id)...
示例表
|-id -|- Name -|- Department -|
|- 1 -|- Name 1 -|- 1 -|
|- 2 -|- Name 2 -|- 1 -|
|- 3 -|- Name 3 -|- 1 -|
|- 4 -|- Name 4 -|- 2 -|
询问
SELECT GROUP_CONCAT(Name,DESC SEPARATOR ', ') As Names,Department
FROM person
GROUP BY Department
结果
|-id -|- Names -|- Department -|
|- 1 -|- Name 1, Name 2, Name 3 -|- 1 -|
|- 2 -|- Name 4 -|- 1 -|
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.