首页 > 解决方案 > 选择中另一个表的Mysql JSON_ARRAYAGG

问题描述

我有空缺和部门,我想将所有有空缺的部门作为 json 数组。我尝试使用 JSON_ARRAYAGG 函数但得到 mysql 语法错误。

select vd.id, vd.title, vd.sort,
(select json_arrayagg(v.id, v.title) from vacancies as v where vd.id = v.department_id) as vacancies
from vacancy_departments as vd

标签: mysqlmysql-5.7

解决方案


如果您提供了一些样本数据和预期结果,我们可以为您提供更好的选择。同时尝试这样的事情:

SELECT vd.id, vd.title, vd.sort,
(
    SELECT JSON_ARRAYAGG(
        JSON_MERGE_PRESERVE(
            JSON_OBJECT("id", v.id),
            JSON_OBJECT("title", v.title)
            ))
    FROM vacancies as v
    WHERE vd.id = v.department_id
) as vacancies
FROM vacancy_departments as vd

推荐阅读