left join 重复

博客探讨了在使用LEFT JOIN查询时遇到的重复数据问题,特别是在查询特定用户(如id为3)的积分时,由于LEFT JOIN user_tag用于条件判断而非获取数据,导致返回了多余的结果。解决这个问题的方法是在SQL查询中加入GROUP BY语句,以确保只返回期望的唯一记录。同时提到了JOOQ库在处理这种情况时,可能需要对所有字段进行GROUP BY操作。
摘要由CSDN通过智能技术生成

left join查询重复问题

user_score表

user_id score
3 100
4 20

user_tag表

user_id tag_id
3 1
3 2

正常的左连接查询,查询某个用户,比如id=3的积分,但是该用户必须有tag表数据。也就是说此时的左连接user_tag并不是为了取数据,而是做条件判断,从而从user_score中取数据

select  user_score.* from user_score 
left join user_tag on user_score.user_id = user_tag.user_id
where user_tag.tag_id in12

但是,会查询出两条数据

--------------------
user_id   score       隐藏的数据tag_id
 3			100			1
 3			100			2
-----------------------

这是不符合我们需求的,因为user_tag只是我们作为查询的条件判断而已,正确的写法需要group by

select  user_score.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值