Как создать новый столбец в выводе и дать значения, используя соединение в MySQL - PullRequest
0 голосов
/ 17 октября 2018

У меня есть две таблицы 'group' и 'выигрыш', где у меня есть id, mem_id, имя участника в групповой таблице и id, приз_memid, prized_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

1 Ответ

0 голосов
/ 17 октября 2018
  • Group By на mem_id и member_name.Выполните Left join, начиная с group таблицы до prize таблицы по mem_id.Левое объединение позволит нам рассмотреть всех участников, независимо от того, получили ли они приз или нет.
  • Примечание , что group является ключевым словом Reserved в 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...