powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / distinct on with left join
1 сообщений из 1, страница 1 из 1
distinct on with left join
    #40054564
Alex_Wong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите, пожалуйста, как правильно соединять
через left join таблицы с distinct on у каждой, например такие:

Код: plsql
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.
SELECT * 
FROM
(
SELECT DISTINCT ON (t1.nus)
t1.aus,
t1.nus,
t1.sts,
t1.fki
FROM t1
WHERE t1.fki = 85
ORDER BY t1.nus, t1.aus DESC
) as s1
WHERE s1.sts = true;

--

SELECT * 
FROM
(
SELECT DISTINCT ON (t2.num)
t2.aum,
t2.num,
t2.stm,
t2.ptm
FROM t2
ORDER BY t2.num, t2.aum DESC
) as s2
WHERE s2.stm = true;



из того, что получилось (но через inner join) типа такого :

Код: plsql
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.
with ...

select .. .. .. as item from
(SELECT * FROM (SELECT DISTINCT ON (t1.nus)
t1.aus, t1.nus, t1.sts, t1.fki
FROM t1
WHERE t1.fki = 85
ORDER BY t1.nus, t1.aus DESC
) as s1
WHERE s1.sts = true
) n1
inner join
(SELECT * FROM (SELECT DISTINCT ON (t2.num)
t2.aum, t2.num, t2.stm, t2.ptm
FROM t2
ORDER BY t2.num, t2.aum DESC
) as s2
WHERE s2.stm = true
) n2
on (n2.ptm = n1.fki)
group by  n1.aus
order by n1.aus
)            

...



но уже на трёх таблицах с distinct on, - не получается.
Как правильно связывать такие таблицы, чтобы не
потерять в скорости? спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / distinct on with left join
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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