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

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

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

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

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

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

1
2
SELECT Student.ID, Student.Name, Student.Age, StudentGroup.SpecialityID FROM Student, StudentGroup
WHERE Student.GroupID=StudentGroup.ID

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

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

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

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

Категория: MySQL | Добавил: ghost_mod (29.09.2016)
Просмотров: 345 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: