Я использую MySQL с таблицей под названием students
. Я пытаюсь добавить столбец, в котором указано, приехал ли студент из США, Европы, Южной Америки или нет. В частности, я хотел бы поставить 0 в столбце, если ни один из них не соответствует действительности, 1, если США, 2, если Европа, 3, если Южная Америка.
Итак, я делаю что-то вроде этого:
SELECT name,
CASE WHEN ...
FROM original_table or
LEFT JOIN us_table us
ON or.student_id = us.student_id
LEFT JOIN europe_table eur
ON or.student_id = eur.student_id
LEFT JOIN south_america_table sa
ON or.student_id = sa.student_id
У меня проблемы с CASE WHEN
частью. Я мог бы просто сказать что-то вроде «когда столбец id
из таблицы США не равен нулю, а остальные столбцы id
(из Европы и Южной Америки) равны нулю, записать 1.
Аналогичным образом, если столбец id
из таблицы Europe не равен нулю, а столбцы id
таблицы США и Южной Америки имеют значение null, запишите значение 2.
Есть ли лучший способ?