Mysql 在SQL中构建JSON对象。我应该在SQL中还是在应用程序中构建对象?
我通过SQL查询生成JSON对象,但是,我认为应该在应用程序逻辑(node.js)中构建这些对象。给出以下结构和查询;查询数据的方法是什么,以便可以轻松地转换数据 有关完整示例,请参见 **预期输出JSON**Mysql 在SQL中构建JSON对象。我应该在SQL中还是在应用程序中构建对象?,mysql,sql,json,node.js,Mysql,Sql,Json,Node.js,我通过SQL查询生成JSON对象,但是,我认为应该在应用程序逻辑(node.js)中构建这些对象。给出以下结构和查询;查询数据的方法是什么,以便可以轻松地转换数据 有关完整示例,请参见 **预期输出JSON** { id: <int> parent_comment_id: <int> content: <string> created: <int> user: { id: <int>
{
id: <int>
parent_comment_id: <int>
content: <string>
created: <int>
user: {
id: <int>
username: <string>
name_first: <string>
name_last: <string>
}
tags: {
<string>:<int|string>
}
}
当前查询
SELECT
`c`.`id` AS `id`,
`c`.`parent_comment_id` AS `parent_comment_id`,
`c`.`content` AS `content`,
`c`.`created` AS `created`,
CONCAT('{',
CONCAT('"id": "', `u`.`id`, '",'),
CONCAT('"username": "', `u`.`username`, '",'),
CONCAT('"name_first": "', `u`.`name_first`, '",'),
CONCAT('"name_last": "', `u`.`name_last`, '"'),
'}') AS `user`,
IF(`t`.`id` IS NULL, NULL, CONCAT('{',GROUP_CONCAT(
CONCAT_WS(
':',
CONCAT('"',`t`.`ref_type`, '"'),
`t`.`ref_id`,
IF(`t`.`ref_text` IS NOT NULL, CONCAT('"',`t`.`ref_text`,'"'), NULL)
)), '}')) AS `tags`
FROM `comment` AS `c`
JOIN `user` AS `u`
ON `c`.`user_id` = `u`.`id`
LEFT JOIN `comment_tag` AS `t`
ON `c`.`id` = `t`.`comment_id`
GROUP BY `c`.`id`
SELECT
`c`.`id` AS `id`,
`c`.`parent_comment_id` AS `parent_comment_id`,
`c`.`content` AS `content`,
`c`.`created` AS `created`,
CONCAT('{',
CONCAT('"id": "', `u`.`id`, '",'),
CONCAT('"username": "', `u`.`username`, '",'),
CONCAT('"name_first": "', `u`.`name_first`, '",'),
CONCAT('"name_last": "', `u`.`name_last`, '"'),
'}') AS `user`,
IF(`t`.`id` IS NULL, NULL, CONCAT('{',GROUP_CONCAT(
CONCAT_WS(
':',
CONCAT('"',`t`.`ref_type`, '"'),
`t`.`ref_id`,
IF(`t`.`ref_text` IS NOT NULL, CONCAT('"',`t`.`ref_text`,'"'), NULL)
)), '}')) AS `tags`
FROM `comment` AS `c`
JOIN `user` AS `u`
ON `c`.`user_id` = `u`.`id`
LEFT JOIN `comment_tag` AS `t`
ON `c`.`id` = `t`.`comment_id`
GROUP BY `c`.`id`