如果只取第一行结果,并把 name 下的所有名字合并成一行,怎么写
时间: 2024-03-03 10:47:56 浏览: 43
bootstrap table合并行数据并居中对齐效果
可以使用子查询和 GROUP_CONCAT 函数来实现这个需求,具体的 SQL 查询语句如下:
```
SELECT
day,
workcenterid,
moldno,
moldname,
processid,
actualhour,
planhour,
actualstart,
actualend,
GROUP_CONCAT(name SEPARATOR ',') AS person_names
FROM (
SELECT
DATE_FORMAT(n_pp_recard.actualstart, '%Y-%m-%d') AS day,
workcenterid,
moldno,
n_pp_bom.name AS moldname,
n_pp_recard.processid,
n_pp_recard.actualhour,
n_pp_process.planhour,
n_pp_recard.actualstart,
n_pp_recard.actualend,
jyt_list_person.name
FROM
n_pp_recard
JOIN n_pp_process ON n_pp_recard.processid = n_pp_process.id
JOIN n_pp_bom ON n_pp_process.productionOrdersBom_id = n_pp_bom.id
JOIN n_pp_productionorders ON n_pp_bom.porderid = n_pp_productionorders.no
JOIN jyt_list_person ON jyt_list_person.gonghao = n_pp_recard.personid
WHERE
n_pp_recard.processid = (
SELECT
processid
FROM
n_pp_recard
WHERE
workcenterid = '4'
ORDER BY
actualstart DESC
LIMIT 1
)
ORDER BY
actualstart
LIMIT 1
) AS subquery
GROUP BY
day,
workcenterid,
moldno,
moldname,
processid,
actualhour,
planhour,
actualstart,
actualend
```
这个查询语句的主要变化是使用了子查询来限制查询结果只有第一行,然后在外部查询中使用 GROUP_CONCAT 函数来合并 name 列的多个值。GROUP_CONCAT 函数可以将多个值合并成一个字符串,并使用指定的分隔符进行分隔。在这个示例中,分隔符是逗号。
阅读全文