![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
При сравнении значения одной таблицы с со значением столбца другой таблицы условие поиска имеет следующий вид:
<условия поиска > = <имя столбца 1> <оператор> <имя столбца 2>
Пример:
Чтобы выбрать все записи о расходе товара из таблицы RASHOD и для каждого товара указать его цену из таблицы TOVARY, можно использовать такой оператор:
SELECT RASHOD.*, TOVARY.ZENA
FROM RASHOD, TOVARY
WHERE RASHOD.TOVAR = TOVARY.TOVAR
Такой способ соединения называется внутренним соединением.
При внутреннем соединении двух таблиц A и B логический порядок формирования результирующего набора данных можно представить следующим образом.
1. Из столбцов, которые указаны после слова SELECT, составляется промежуточный набор данных путем сцепления результирующих столбцов каждой записи из таблицы А и результирующих столбцов записи из таблицы В.
2. Из получившегося НД отбрасываются все записи, не удовлетворяющие условию в предложении WHERE.
Замечание:
Фактический порядок выполнения запроса для конкретного SQL-сервера может быть другим.
Пример:
Таблица A
Ст. P1 | Ст. P2 | Ст. P3 |
a | x | |
b | x | |
c | y | |
d |
Таблица B
Ст. P1 | Ст. P2 |
x | |
y | |
z |
SELECT A.P1, A.P2, B.P2
FROM A, B
WHERE A.P2 = B.P1
Промежуточный набор
Ст. A.P1 | Ст. A.P2 | Ст. B.P1 | Ст. B.P2 |
a | x | x | |
a | x | y | |
a | x | z | |
b | x | x | |
b | x | y | |
b | x | z | |
c | y | x | |
c | y | y | |
c | y | z |
Окончательный набор
Ст. A.P1 | Ст. A.P2 | Ст. B.P2 |
a | x | |
b | x | |
c | у |
Дата публикования: 2014-12-28; Прочитано: 212 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!