sql查询:查询所有学生的个人信息和加入的多个班级(group_concat)

1.使用GROUP_CONCAT函数

SELECT
	ls.stu_name,
     ls.id,
	ls.user_id,
	GROUP_CONCAT(class_name)
FROM
	lx_stu AS ls
	LEFT JOIN lx_stu_class AS lsc ON ls.id = lsc.stu_id
	LEFT JOIN lx_class as lc ON lsc.class_id = lc.id
GROUP BY ls.id

此时学生的加入的班级名称会以逗号的形式组成一个字符串

效果:

 2.更换连接方式

//重点:separator ";"

SELECT
	ls.stu_name,
 ls.id,
	ls.user_id,
class_name,
	GROUP_CONCAT(class_name separator ";")
	
FROM
	lx_stu AS ls
	LEFT JOIN lx_stu_class AS lsc ON ls.id = lsc.stu_id
	LEFT JOIN lx_class as lc ON lsc.class_id = lc.id
GROUP BY ls.id

效果:

3.同时查询多个字段

//重点:GROUP_CONCAT(distinct class_name,"->",lsc.id separator ";") as class_name

SELECT
	ls.stu_name,
	ls.id,
	ls.user_id,
	GROUP_CONCAT(distinct class_name,"->",lsc.id separator ";") as class_name
	
FROM
	lx_stu AS ls
	LEFT JOIN lx_stu_class AS lsc ON ls.id = lsc.stu_id
	LEFT JOIN lx_class as lc ON lsc.class_id = lc.id
GROUP BY ls.id

效果:

2021,过得真快。2022祝你好运 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值