[英]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 By
對mem_id
和member_name
。 Left join
從group
表開始到mem_id上的prize
表。 左連接將允許我們考慮所有成員,無論他們是否獲得獎品。 group
是MySQL中的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.