Актуальные строки можно отобрать из декартово произведения путем ввода в запрос параметра WHERE, в котором устанавливается соответствие между полями, посредством которых каждая пара таблиц связана между собой.
Эквисоединение таблиц в предыдущем запросе выглядит следующим образом:
SELECT Students.*, St_Hobby.*
FROM Students, St_Hobby
WHERE Students.N_z= St_Hobby.N_z;
Естественное соединение таблиц
Естественным соединением таблиц называется такое соединение, из которого исключены дубликаты столбцов, по которым проводилось эквисоединение (Students.N_z и St_Hobby.N_z). Для исключения дубликатов в операторе SELECT необходимо явно указать только один из столбцов этих пар, принадлежащего главной таблице:
SELECT Students.N_z, Students.F_Name, Students.S_Name, Students.B_Data, ST_Hobby.Hobby_name
FROM Students, St_Hobby
WHERE Students.N_z= St_Hobby.N_z;
Композиция таблиц
Композицией таблиц называется соединение, из которого полностью исключены столбцы, по которым производилось соединение.
Соединение таблиц с дополнительным условием
Наравне с уловными выражениями, предназначенными для указания способа соединения таблиц между собой, в параметре WHERE можно дополнительно указывать все описанные выше дополнительные условия фильтрации, объединенные с условными выражениями соединения при помощи оператора AND. Например:
-- получение информации о студентах из групп 2011,2012,3014 и их хобби
SELECT Students.N_z, Students.F_Name, Students.S_Name, Students.B_Data, ST_Hobby.Hobby_name
FROM Students, St_Hobby
WHERE Students.N_z= St_Hobby.N_z AND Students.N_gr IN (2011,2012,3014);