簡體   English   中英

如何在輸出中創建新列並使用MySQL中的join來賦值

[英]How to create a new column in output and give values using join in MySQL

我有兩個表'group'和'prize',其中我有id,mem_id,groupname in group table和id,prize_memid,prized_memname in prize table。

 ***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 Left joingroup表開始到mem_id上的prize表。 左連接將允許我們考慮所有成員,無論他們是否獲得獎品。
  • 請注意groupMySQL中Reserved關鍵字 您應該考慮將表重命名為其他內容。 否則,你將不得不在它周圍使用反引號。
  • 現在,使用條件函數(如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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM