MySql如何实现多条数据合并成一条数据,是分不同框的那种·

Tokyo_not_too_hot 2018-08-30 10:10:12
你好,是这样的,我这有两张表是一对多的关系,现在需要合并成一张表且同一个人只有一条数据,我在网上找了个sql语言。
原表是这样子的
预计效果是这样子的
但是我实际上查找到的是这样子的

这是建表语句:SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(5) NULL DEFAULT NULL,
`hobby` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES (1, '张三', 18, '读书');
INSERT INTO `t_user` VALUES (2, '张三', 18, '打游戏');
INSERT INTO `t_user` VALUES (3, '张三', 18, '写代码');
INSERT INTO `t_user` VALUES (4, '王五', 20, '吃饭');
INSERT INTO `t_user` VALUES (5, '王五', 20, '睡觉');
INSERT INTO `t_user` VALUES (6, '王五', 20, '打豆豆');




这是查询语句:set @name = '王五';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'(select hobby from (SELECT @rownum:=@rownum+1 AS rownum, t_user.*
FROM (SELECT @rownum:=0) r, t_user where name="',@name,'") t where t.rownum = ',
t.rownum,
') AS ',
CONCAT('hobby',rownum)
)
) INTO @sql
FROM (SELECT @rownum:=@rownum+1 AS rownum, t_user.*
FROM (SELECT @rownum:=0) r, t_user where name=@name) t;
SET @sql = CONCAT('select distinct name,age, ', @sql, ' from t_user where name ="',@name,'"');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
...全文
1726 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16898123 2019-11-08
  • 打赏
  • 举报
回复
每一个用户变量@rownum取新的名字,不要重复使用一个变量
Tokyo_not_too_hot 2018-08-30
  • 打赏
  • 举报
回复
有意思的是我把sql语句拆分开来; 图片中 红色框处,每一句sql语句都能够 搜索到数据,



但是一旦合并起来 第二三个数据就没了

求问大佬们 这是为啥子呢 难道跟mysql版本有关么·

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧