Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли как то вывернуться? (SELECT JOIN) / 5 сообщений из 5, страница 1 из 1
02.07.2014, 10:17:08
    #38685467
crause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как то вывернуться? (SELECT JOIN)
Есть такие таблицы
Код: 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.
CREATE TABLE table1
(
id bigserial Primary Key Unique,
label text,
a integer,
b integer,
depend_a integer,
depend_b integer
)

CREATE TABLE table_a
(
id bigserial Primary Key Unique,
label text
)

CREATE TABLE table_b
(
id bigserial Primary Key Unique,
label text
)

CREATE TABLE table_depend_a
(
id bigserial Primary Key Unique,
label text
)

CREATE TABLE table_depend_b
(
id bigserial Primary Key Unique,
label text
)

Таблицы Table_A и Table_B содержат одинаковые текстовые данные, которые соответствуют значения из Table1 колонок A и B
Таблицы Table_depend_A и Table_depend_B содержат одинаковые текстовые данные, которые соответствуют значения из Table1 колонок depend_A и depend_B

Запросом в базу получаю данные с текстовыми метками
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
table1.label,
table_a,
table_b,
table_depend_a,
table_depend_b
FROM table1
JOIN table_a ON table_a.id=table1.a
JOIN table_b ON table_b.id=table1.b
JOIN table_depend_a ON table_depend_a.id=table1.depend_a
JOIN table_depend_b ON table_depend_b.id=table1.depend_b

Отсюда вопрос!
Можно ли как то вывернуться, так что бы не хранить в базе таблицы "table_b" и "table_depend_b",
а неизвестной мне конструкцией сделать так что бы при выводе данных из "table_a" и "table_depend_a" значения ее привязывались
к "table1.a", "table1.b", "table1.depend_a", "table1.depend_b",
...
Рейтинг: 0 / 0
02.07.2014, 10:39:41
    #38685508
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как то вывернуться? (SELECT JOIN)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE table1
(
id bigserial Primary Key Unique,
label text,
a integer,
b integer,
depend_a integer,
depend_b integer
)

CREATE TABLE table_ab
(
id bigserial Primary Key Unique,
label text
)

CREATE TABLE table_depend_ab
(
id bigserial Primary Key Unique,
label text
)


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
table1.label,
table_a,
table_b,
table_depend_a,
table_depend_b
FROM table1
JOIN table_ab AS table_a ON table_a.id=table1.a
JOIN table_ab AS table_b ON table_b.id=table1.b
JOIN table_depend_ab AS table_depend_a ON table_depend_a.id=table1.depend_a
JOIN table_depend_ab AS table_depend_b ON table_depend_b.id=table1.depend_b
...
Рейтинг: 0 / 0
02.07.2014, 10:47:17
    #38685515
crause
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как то вывернуться? (SELECT JOIN)
СПАСИБО ОГРОМНОЕ!

Я в шоке как можно извернуться. Я поражен гибкостью.
Блин я еще много чего не знаю.
Есть ли какой-нибудь задачник по SQL запросам, что бы какие то замудреные были и с ответами и пояснениями?
...
Рейтинг: 0 / 0
02.07.2014, 11:14:53
    #38685549
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как то вывернуться? (SELECT JOIN)
документация
I. Tutorial
II. The SQL Language

вот ваш случай
7.2.1.2. Table and Column Aliases
Table aliases are mainly for notational convenience, but it is necessary to use them when joining a table to itself, e.g.:
SELECT * FROM people AS mother JOIN people AS child ON mother.id = child.mother_id;
...
Рейтинг: 0 / 0
02.07.2014, 14:05:12
    #38685762
Hawkmoon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как то вывернуться? (SELECT JOIN)
crause,

www.sql-ex.ru
Даже нерейтинговые задачки сильно качают скил join'ов.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли как то вывернуться? (SELECT JOIN) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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