mysql单表自关联查询

84 篇文章 23 订阅

好久没写sql了,这个系统居然要求是全栈类型。从后到前都要做(我的js都忘光了),先记录下一个sql这块吧。

一需求:

现在有个表crm,里面存放着:id,recommended_id,其中recommended_id属于id范围,就是推荐人的id。

现在的需求是,查询全部的数据,过滤条件是符合某个分类,返回时id,及其所推荐id,若果没有,则返回null,如果推荐多条,和合并为一条用“”,“”分割。

二实现:

看了下,这表数据不大,几十万条。符合条件的结果几千条。

SELECT c.id, r.recommended_id  from crm c
LEFT JOIN 
(
SELECT id, GROUP_CONCAT(recommended_id) as recommended_id from crm
 where 业务条件1 =X and 业务条件2 =Y   GROUP BY recommended_id) r
on c.id= r.id where  业务条件1 =X and 业务条件2 =Y 
关键词:

GROUP_CONCAT:多行合并成一行

left join:允许右侧结果为空


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值