SQL Урок 4. Использование нескольких таблиц в запросе

SQL   31 марта 2012  Автор статьи:  

В данной статье речь пойдет о использовании нескольких таблиц внутри оператора SELECT. Просто перечисление двух таблиц внутри оператора SELECT даст N * M записей, где N — количество записей в первой таблице, а M — во второй.Где каждая запись представляет собой конкатенацию одной записи из первой таблицы и одной записи из второй таблицы.

SELECT A.AGE, B.AGE FROM Student AS A, Student AS B

Если вы хотите два раза использовать одну и ту же таблицу в запросе, то вам необходимо переименовать ее. Переименование таблиц происходит также как и переименование столбцов с помощью AS. Если название какого — либо поля повторяются в таблицах, то для доступа к этому полю необходимо использовать «название_таблицы.имя_поля». Для дальнейшего объяснения данной темы модифицируем нашу базу данных. Добавим еще одну таблицу StudentGroup в которой у нас будут поля:

  • int ID(номер группы)
  • int SpecialtyID(номер специальности)
  • bool commerce(коммерческая или бюджетная)

А в таблицу Student добавим поле GroupID(номер группы), которое будет связывать обе таблицы. Поэтому для вывода всех студентов из таблицы Student вместе достаточно ввести следующий запрос:

SELECT Student.ID, Student.Name, Student.Age, StudentGroup.SpecialityID from Student, StudentGroup
WHERE Student.GroupID=StudentGroup.ID

Для того, чтобы вывести пары студентов, имеющих одинаковый возраст:

SELECT A.AGE, B.AGE FROM Student AS A, Student AS B
WHERE A.Age=B.Age AND A.ID<>B.ID

Переименовать множества данных также следует, если вы используете в качестве таблицы подзапрос:

SELECT A.AGE FROM Student, (SELECT ID FROM StudentGroup) AS Groups
WHERE A.GroupID=Groups.ID

  • Sam

    В последнем листинге по-моему ошибка.Где представление таблицы Student?

Научиться программировать

  • на Delphi

  • на Java

  • на C++