Вот таблица
stuid stuname subject grade
1 alex algo 99
1 alex dastr 100
2 bob algo 90
2 bob dastr 95
3 casy algo 100
4 Daisy dastr 100
case1: при условии, что в таблице только две темы. Ниже приведен ожидаемый результат
stuname algo dastr
alex 99 100
bob 90 95
casy 100 0
Daisy 0 100
Я думаю, что следующий - это выполнимый запрос
select g1.stuname,
COALESCE(g1.grade,0) as algo
COALESCE(g2.grade,0) as dastr
from grades g1
full outer join grades g2 on g1.stuid = g2.stuid
where g1.subject = algo and g2.subject = dastr;
Но mysql не поддерживает полное внешнее соединение.Есть ли другой способ решения проблемы?
Кроме того, случай 2, если предположить, что в таблице есть неизвестное количество субъектов и ожидаемый результат будет
stuname subj1 subj2 subj3 ... subjn
Я знаю, что мог бы бытьс помощью процедуры разрешите это, есть ли другой способ, которым я могу использовать для составления столбцов в MySQL?