Вопрос по объединению, где один столбец с одной стороны равен нулю

У меня есть две таблицы, где хранятся кандидаты и их оценки. Простое объединение может получить всех кандидатов и их оценки путем сопоставления идентификаторов и т. Д.

например:

Alan    C
George  A

и т.д.. Однако:

Nina

Оценка для Нины нулевая, потому что она не сдала экзамен.

Как я могу получить вывод, как показано ниже?

Alan   C
George A
Nina

Так что все равно получите Нину, хотя она не сдала экзамен. Я пробовал нулевые проверки, затем что-то выполнял и т. Д.

Спасибо

3 ответа

Вы хотите использовать левое соединение.

select c.name, coalesce(g.grade,'')
    from candidate c
        left join grade g
            on c.candidate_id = g.candidate_id

Вам нужно использовать левое соединение для этого.

Вам нужно использовать left join, Например:

 select c.name, g.grade
 from candidates c
 left join grades g on g.candidateid=c.id

В левом соединении всегда перечислены все строки на "левой" стороне соединения - в данном случае кандидаты. В строках, где кандидат не имеет записи в таблице оценок, все столбцы, заполненные из этой таблицы, будут нулевыми.

Другие вопросы по тегам