我有两个表'group'和'prize',其中在group表中有id,mem\u id,membername,在prize表中有id,prize\u memid,prized\u memname。
***group table***
id mem_id membername
1 1 A
2 1 A
3 2 B
4 3 C
5 3 C
***prize table***
id prize_memid prized_memname
1 1 A
2 32 yy
3 20 ww
4 2 B
我希望使用联接得到这样的结果(成员资格是额外的列,不在表中)
***Output***
mem_id membername membership
1 A Prized
2 B Prized
3 c Non-Prized
1条答案
按热度按时间jv4diomz1#
Group By
在mem_id
以及member_name
. 做Left join
从开始group
表到prize
表中的mem\u id.left join将允许我们考虑所有成员,无论他们是否获得了奖品。请注意
group
是mysql中的保留关键字。您真的应该考虑将表重命名为其他名称。否则,必须在其周围使用反记号。现在,使用条件函数
If()
检查是否有奖品(COUNT(prize_memid)
应该大于零,如果他至少获得过一次奖品)。请尝试以下操作: