2015-03-15 3 views
0

У меня есть две таблицы, курсы и факультеты.Листинг строк, которые имеют одинаковое значение в определенном столбце в postgresql

  • Курсы имеют столбцы: идентификатор (первичный ключ), описание, уровень, instructor_id (иностранный ключ), и семестр.
  • Факультеты имеют столбцы: faculty_id (первичный ключ), имя, дата_обытия, адрес, адрес электронной почты и уровень.

teacheror_id в курсах ссылки faculty_id на факультетах.

Я пытаюсь написать запрос, в котором перечислены все преподаватели, которые учат более одного курса. Поскольку я новичок в SQL в целом, я совершенно зациклен на том, как это сделать. В таблице Курсы есть строки с одинаковым значением для trainor_id. До сих пор я уже присоединился к таблицам, как это:

SELECT "Courses".description, "Faculties".name FROM "Courses" INNER JOIN 
"Faculties" ON "Courses".instructor = "Faculties".faculty_id; 

Но я не знаю, как отфильтровать строки, которые, которые дублируют значения в колонке Instructor (другими словами фильтровать классы с тем же инструктором) ,

+0

'GROUP BY' и' HAVING' с 'COUNT' –

+0

Создавали ли вы свои таблицы с двойными кавычками? ([Я не хотел.] (Http://stackoverflow.com/questions/20878932/are-postgresql-column-names-case-sensitive/20880247#20880247)) –

ответ

0

Это запрос агрегации. Если вы просто хотите, инструктор идентификатор, то вы можете использовать:

select instructor_id 
from courses 
group by instructor_id 
having count(*) > 1; 

Чтобы получить дополнительную информацию, присоединиться к другой таблице.