Как найти элемент в таблице, у которого есть идентификатор, но мне нужно искать его по имени?

#sql #union

#sql #объединение

Вопрос:

Я пытаюсь решить этот вопрос, но как я могу получить информацию о лекторе, если я предполагаю, что я не знаю StaffID ?

Я попытался решить вопрос двумя подходами, один из которых предполагает, что я не знаю StaffID , а другой предполагает, что я знаю StaffID .

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

Например, если мы знаем StaffID :

 SELECT StaffID, Reg.NO, MatricNO, Code, Kulliyyah, Venue, Time, Day
FROM registration
WHERE StaffID = 401 
  

В качестве альтернативы, предположим, что мы не знаем о StaffID :

 SELECT StaffID, Lecturer
FROM Lecturer
WHERE Lecturer = Musa 
UNION 
            SELECT StaffID
 FROM registration
WHERE registration .StuffID = Lecturer. StaffID
  

Ответ №1:

То, что вы, вероятно, хотите, это JOIN (не объединение).

Кажется странным, что Лектор — это одновременно имя таблицы и имя столбца. Также опечатка StuffID

Были добавлены псевдонимы, такие как R и L, для сокращения квалификации. Вокруг имени лектора добавлены кавычки.

 SELECT R.StaffID, Reg.NO, MatricNO, Code, Kulliyyah, Venue, Time, Day 
FROM registration as R
LEFT JOIN Lecturer as L
ON R.StaffID = L.StaffID
Where L.Lecturer = 'Musa'
  

Ответ №2:

Это базовый JOIN запрос:

 SELECT r.*
FROM registration r JOIN
     Lecturer L
     ON r.StaffID = l.StaffID
WHERE l.Lecturer = 'Musa';