2012-06-17 4 views
-1

Я новичок в SQL, не могли бы вы помочь мне написать запрос к:SQL Регистрация запросов

  • найти имя преподавателя, который также является участником одного курса
  • найти 4 курса с наиболее участники

таблицы:

- Lecturer [LecturerID (PK), name] 
- Course [CourseId (PK), LecturerID, name] 
- Participant [ParticipantID (PK), CourseID(PK)] 

Спасибо!

+4

Похоже, домашнее задание. Что вы пробовали? –

+0

Ну, я пытаюсь понять, как работает соединение и т. Д. Я хочу написать простую систему для изучения SQL, и у меня есть стек с этой проблемой ... – Devel

+0

Это не два вопроса, которые я бы выбрал для начала обучения. Еще два, чтобы узнать, узнали ли вы их. Я также уверен, что только что вы, sql, не научит вас чему-либо. –

ответ

2

Если вы пытаетесь узнать, как работают соединения, нам было бы более полезно помочь вам создать SQL самостоятельно. Основной формат для объединения заключается в следующем:

SELECT * 
FROM table1 
JOIN table2 ON table1.joinID = table2.joinID 

Я хотел бы подойти к этому в 3 этапа:

  1. Написать основной ЗЕЬЕСТ, который будет возвращать соединяемых данные таблицы
  2. Изменить SQL для только показать "имя лектора, который также является участником одного курса"
  3. Начиная с основной инструкции SELECT с шага 1, измените SQL, чтобы показывать только «4 курса с большинством участников»

В результате это будет два разных запроса.

Если вы хотите начать с него и застрять, мы сможем вам помочь, но это не поможет вам узнать его, если мы просто дадим вам SQL. Попытайтесь написать немного об этом и опубликуйте то, что у вас есть, когда вы застряли.

+0

Чтобы сделать первую задачу, было бы правильно? выберите имя из Лектор присоединиться курс по Course.LecturerID = Lecturer.LecturerID присоединиться к Участнику на Participant.CourseID = Course.CourseID где Lecturer.LecturerID = Participant.ParticipantID – Devel

+1

Это хорошее начало. У вас есть рабочая база данных, с которой вы могли бы играть? Я создаю SQLFiddle, который вы можете попробовать проверить ваши запросы. Кроме того, я предполагаю, что есть таблица «СТУДЕНТ»? Прямо сейчас, мы должны предположить, что таблица «УЧАСТНИК» содержит ссылки на четвертую таблицу. – Seth

+1

Мне нужно немного поработать, но скоро вернусь, чтобы проверить, как вы поживаете. Вот SQLFiddle, где вы можете проверить свой запрос и начать играть с его редактированием: http://sqlfiddle.com/#!3/59788/1 – Seth

2
select L.name from lecture L join participant P on L.id=P.id 

select C.cid from course C join participant P 
ORDER BY P.cid DESC 
LIMIT 4; 

Надеюсь, это поможет вам

+0

Не должно быть никакого счета? – Devel

+0

извините, да. Это должно быть количество (p.cid). ПРЕДЛОЖЕНИЕ DESC 4.Thanks – vijay

Смежные вопросы