mysql 增加列并赋值,如何在输出中创建新列并使用MySQL中的join赋值

我有两个表“ group”和“ prize”,其中我有id,mem_id,组表中的成员名和id,prize_memid,prunded_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

我想要使​​用JOINS这样的结果(成员资格是额外的列,不在表中)

***Output***

mem_id membername membership

1 A Prized

2 B Prized

3 c Non-Prized

解决方法:

>按mem_id和member_name分组.从mem_id上的组表到奖品表开始进行左加入.左加入将使我们能够考虑所有成员,无论他们是否获得过奖赏.

>请注意,组是Reserved keyword in MySQL.您应该真正考虑将表重命名为其他名称.否则,您将不得不在其周围使用反引号.

>现在,使用诸如If()之类的条件函数来检查某人是否有奖赏(如果至少获得一次奖赏,则COUNT(prize_memid)应该大于零).

请尝试以下操作:

SELECT

g.mem_id,

g.membername,

IF(COUNT(p.prize_memid) > 0, 'Prized', 'Non-Prized') AS membership

FROM

`group` as g

LEFT JOIN `prize` as p ON p.prize_memid = g.mem_id

GROUP BY g.mem_id, g.membername

标签:join,mysql,database

来源: https://codeday.me/bug/20191024/1924557.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值