Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






FROM Блюда, Состав, Продукты





WHERE Блюда.ID_Блюда = Состав.Блюдо

and Состав.Продукт = Продукты.ID_Продукта;

Запрос позволяет получить эквисоединение таблиц (соединение при равенстве значений столбцов) Блюда, Состав и Продукты. В строке SELECT указаны лишь те столбцы, которые необходимы в результате:

Результат    
Блюдо Продукт Вес
Салат летний Майонез  
Салат летний Помидоры  
Салат летний Зелень  
Салат летний Яблоки  
Салат мясной Говядина  
Салат мясной Майонез  
Салат мясной Яйца  
Салат мясной Морковь  
Салат мясной Помидоры  
Салат мясной Зелень  
Салат витаминный Сметана  
Салат витаминный Лук  
Салат витаминный Помидоры  
Салат витаминный Зелень  
   

Рассмотренный вид соединения является внутренним, так как исключает несовпадающие по значению строки. То есть, если в БД занесено блюдо, но для него ещё не указан состав, то информация о таком блюде не появится в результирующей таблице, а иногда такая информация необходима.

Решить эту проблему помогают внешние соединения. Для получения внешнего соединения применяют один из трех подходов:

1. Использование подзапроса с предикатом EXISTS

2. Объединение двух запросов с помощью UNION

3. Применение специальной конструкции JOIN в предложении FROM

Все они будут рассмотрены далее.

Следует отметить, что в предложении SELECT доступны все поля соединённых таблиц, даже если они не используются в запросе. Каждое имя поля уточняется с помощью точечной нотации, при которой имя поля следует через точку за именем таблицы. Такое уточнение необходимо, когда одно имя поля в запросе встречается более одного раза. (Конечно, эти поля будут находиться в разных таблицах, ведь невозможно создать два поля с одинаковыми именами в одной таблице.) Если не идентифицировать однозначно эти поля, то получим синтаксическую ошибку о неопределённости имён. Уточнение имён необходимо производить вне зависимости от того, ссылается ли запрос на оба поля или нет — каждая ссылка должна быть уточнена.

Когда поле в запросе встречается всего один раз, уточнение имён становится необязательным. Поэтому, мы могли получить такой же результат, воспользовавшись следующим кодом:







Date: 2015-09-18; view: 322; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию