У меня возникают проблемы, пытаясь выбрать в три раза больше имени пользователя.sql возвращает три раза в тот же столбец
У меня есть таблица
JOBS (id, id_student, id_professor, id_professor2)
Этот последний столбец является необязательным, то иногда NULL устанавливается в его содержании. Когда это произойдет, запрос не возвращает никаких строк. Однако, если id_professor2 установлен, запрос возвращается, как я ожидаю. Как я могу это исправить?
SELECT
p.name as professor, s.name as student, s_p.name as second_professor
FROM
users as p
JOIN
jobs ON (p.id = jobs.id_professor)
JOIN
users as s ON (jobs.id_student = s.id)
JOIN
users as s_p ON (s_p.id = jobs.id_professor2)
WHERE
jobs.id = 2;
Работа с id = 2 имеет второго профессора, поэтому запрос выполняется нормально. Но если изменение для jobs.id=3
, запрос ничего не возвращает.
Я исправил. Это произошло потому, что я добавил на английский язык для публикации здесь и забыли некоторые подробности. – ahmm95
Я предполагаю, что 'пользователи как s_p ON (c.id = jobs.id_professor2)' должны 'пользователи как s_p ON (s.id = jobs.id_professor2)' тоже, так как 'c' никогда не псевдонимы .. – Milen
Спасибо, Я исправил. Это должно быть s_p.id – ahmm95