left join查询重复问题
user_id | score |
---|---|
3 | 100 |
4 | 20 |
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 in (1,2)
但是,会查询出两条数据
--------------------
user_id score 隐藏的数据tag_id
3 100 1
3 100 2
-----------------------
这是不符合我们需求的,因为user_tag只是我们作为查询的条件判断而已,正确的写法需要group by
select user_score.