gpt4 book ai didi

mysql - 如何在输出中创建一个新列并在 MySQL 中使用 join 赋值

转载 作者:可可西里 更新时间:2023-11-01 08:02:12 25 4
gpt4 key购买 nike

我有两个表“group”和“prize”,组表中有 id、mem_id、membername,prize 表中有 id、prize_memid、prize_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

最佳答案

  • Group Bymem_idmember_name 上。从 group 表开始执行 Left join 到 mem_id 上的 prize 表。左加入将使我们能够考虑所有成员,无论他们是否获得了奖品。
  • 注意 group 是一个 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

关于mysql - 如何在输出中创建一个新列并在 MySQL 中使用 join 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52847321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com