Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / OUTER JOIN пытаюсь понять что такое / 5 сообщений из 5, страница 1 из 1
09.10.2017, 16:05
    #39533516
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OUTER JOIN пытаюсь понять что такое
Не понимаю, зачем писать OUTER.


Экспериментирую:


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
CREATE table a (id int,f int);
CREATE table b (id int,f int);

INSERT INTO a (id, f) VALUES (1,1);
INSERT INTO a (id, f) VALUES (2,1);
INSERT INTO a (id, f) VALUES (3,2);
INSERT INTO a (id, f) VALUES (4,3);
INSERT INTO a (id, f) VALUES (5,3);

INSERT INTO b (id, f) VALUES (1,1);
INSERT INTO b (id, f) VALUES (2,1);
INSERT INTO b (id, f) VALUES (3,2);
INSERT INTO b (id, f) VALUES (4,3);
INSERT INTO b (id, f) VALUES (5,7);




SELECT * FROM a
SELECT * FROM b

SELECT a.id, a.f, b.id, b.f 
FROM a
JOIN b ON a.id=b.f

SELECT a.id, a.f, b.id, b.f 
FROM a
INNER JOIN b ON a.id=b.f

SELECT a.id, a.f, b.id, b.f 
FROM a
LEFT OUTER JOIN b ON a.id=b.f

SELECT a.id, a.f, b.id, b.f 
FROM a
LEFT JOIN b ON a.id=b.f

SELECT a.id, a.f, b.id, b.f 
FROM a
RIGHT OUTER JOIN b ON a.id=b.f

SELECT a.id, a.f, b.id, b.f 
FROM a
RIGHT JOIN b ON a.id=b.f


SELECT a.id, a.f, b.id, b.f 
FROM a
FULL OUTER JOIN b ON a.id=b.f




RIGHT JOIN выдает тот же результат что и RIGHT OUTER JOIN
LEFT JOIN выдает тот же результат что и LEFT OUTER JOIN
FULL JOIN выдает тот же результат что и FULL OUTER JOIN


Зачем используется это загадочное слово OUTER ?
...
Рейтинг: 0 / 0
09.10.2017, 16:07
    #39533519
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OUTER JOIN пытаюсь понять что такое
OUTER как-то на оптимизатор влияет?

Или результат должен другой выводить?

Зачем его вообще указывать?

Помогите разобраться.
...
Рейтинг: 0 / 0
09.10.2017, 16:34
    #39533550
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OUTER JOIN пытаюсь понять что такое
queezy relax,

как вы думаете, что означает подобная запись :


Код: plaintext
1.
2.
3.
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 USING ( join column list )
T1 NATURAL { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2

?

То что слово OUTER для LEFT, RIGHT и FULL опционально
...
Рейтинг: 0 / 0
09.10.2017, 16:39
    #39533559
queezy relax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OUTER JOIN пытаюсь понять что такое
Андрей Панфиловqueezy relax,

как вы думаете, что означает подобная запись :


Код: plaintext
1.
2.
3.
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 USING ( join column list )
T1 NATURAL { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2

?

То что слово OUTER для LEFT, RIGHT и FULL опционально


Спасибо.

Т.е. получается

INNER JON = JOIN

LEFT OUTER JOIN = LEFT JOIN

FULL OUTER JOIN = FULL JOIN

?
...
Рейтинг: 0 / 0
09.10.2017, 17:09
    #39533588
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OUTER JOIN пытаюсь понять что такое
queezy relax,

ага
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / OUTER JOIN пытаюсь понять что такое / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]