Читайте также:
|
|
Декартово произведение двух таблиц уже рассматривалось ранее: Напомню, что запрос:
SELECT списокСтолбцов FROM Tl, T2,... Тn;
возвращает набор записей, полученный в результате декартового произведения наборов записей из таблиц Т1, Т2,..., Tn. Таблицы, указанные в операторе from, могут быть как таблицами базы данных, так и виртуальными таблицами, возвращаемыми какими-нибудь запросами.
Иногда требуется получить декартово произведение таблицы самой на себя. В этом случае необходимо применить различные псевдонимы для этой таблицы, например:
SELECT списокСтолбцов FROM Mytab Tl, Mytab T2;
Обратите внимание, что попытка выполнить запрос:
SELECT списокСтолбцов FROM Mytab, Mytab;
приведет к ошибке.
В списке столбцов следует использовать полные имена столбцов, используя псевдонимы таблиц, или символ (*), если требуется получить все столбцы.
Для декартова произведения в SQL также допустим синтаксис с ключевыми словами cross join (перекрестное соединение):
SELECT списокСтолбцов FROM Mytab Tl CROSS JOIN Mytab T2;
Рассмотренные выражения работают в полнофункциональных базах данных. В Microsoft Access для получения декартового произведения возможно использование выражения (SELECT список-столбцов FROM T1, T2,... Tn), только если все таблицы в списке имеют различные имена. Если требуется декартово произведение таблицы самой на себя, то в выражении (SELECT список-столбцов FROM Mytab Tl, Mytab T2) Access автоматически добавит ключевое слово as перед каждым псевдонимом. Попытка использования ключевых слов cross join в Access приведет к ошибке.
Запросы на декартово произведение сами по себе очень редко используются. Они приобретают некоторый смысл, если применяются с оператором where.
Допустим, что имеется таблица
Дата добавления: 2015-07-08; просмотров: 266 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Уточнения запроса | | | FROM Рейсы Т1, Рейсы Т2 |