Экзаменационный вопрос (AQA A-level Computer Science):
[Первичные ключи показаны звездочками]
Athlete(*AthleteID*, Surname, Forename, DateOfBirth, Gender, TeamName)
EventType(*EventTypeID*, Gender, Distance, AgeGroup)
Fixture(*FixtureID*, FixtureDate, LocationName)
EventAtFixture(*FixtureID*, *EventTypeID*)
EventEntry(*FixtureID*, *EventTypeID*, *AthleteID*)
Должен быть составлен список имен всех спортсменов, участвующих в матче.
это происходит 17/09/18. В списке должны быть указаны фамилия, имя и
Дата рождения этих спортсменов и никаких других подробностей. Список должен быть представлен в
в алфавитном порядке по фамилии.
Напишите запрос SQL для создания списка.
Я понимаю, что вы можете сделать это двумя способами: один с помощью предложения WHERE, а другой с помощью предложения INNER JOIN. Однако мне интересно, имеет ли значение порядок при связывании таблиц.
Первое примерное решение:
SELECT Surname, Forename, DateOfBirth
FROM Athlete, EventEntry, Fixture
WHERE FixtureDate = "17/09/2018"
AND Athlete.AthleteID = EventEntry.AthleteID
AND EventEntry.FixtureID = Fixture.FixtureID
ORDER BY Surname
Вот первое примерное решение, было бы по-прежнему правильно, если бы я изменил порядок таблиц в предложении WHERE, например:
WHERE FixtureDate = "17/09/2018"
AND EventEntry.AthleteID = Athlete.AthleteID
AND Fixture.FixtureID = EventEntry.FixtureID
У меня тот же вопрос к предложению INNER JOIN, вот второе примерное решение:
SELECT Surname, Forename, DateOfBirth
FROM Athlete
INNER JOIN EventEntry ON Athlete.AthleteID = EventEntry.AthleteID
INNER JOIN Fixture ON EventEntry.FixtureID = Fixture.FixtureID
WHERE FixtureDate = "17/09/2018"
ORDER BY Surname
Опять-таки, было бы правильно, если бы я использовал этот порядок:
INNER JOIN EventEntry ON Fixture.FixtureID = EventEntry.FixtureID
Если порядок имеет значение, может кто-нибудь объяснить мне, почему он находится в порядке, показанном в примерах?