powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / left outer join + defult значения
4 сообщений из 4, страница 1 из 1
left outer join + defult значения
    #33903455
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю так:

select таблица1.поле1,таблица1.поле1,таблица2.поле2,таблица2.поле2 from таблица1 left outer join таблица2 on (таблица1.id = таблица2.id)

В результате получаю все записи таблицы1 и соотвествующие им по id записи таблицы. И все правильно только, когда в таблице2 нет каких - то записей с указанным id из таблицы1, то они устанавливатся в null. То есть примерно так:

таблица1.поле1 | таблица1.поле2 | таблица2.поле1 | таблица2.поле2
----------------------------------------------------------------------
1 | Вася | login | Passwd
2 | Петя | login1 | passwd1
3 | Коля | null | null

Можно ли как то определить default значения для полей из таблицы2?
Т.е. чтобы было например так:

3 | Коля | unknown | no
Всем заранее спасибо.
...
Рейтинг: 0 / 0
left outer join + defult значения
    #33903556
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К примеру так...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table j1( id integer);
insert into j1 values( 1 );
insert into j1 values( 2 );
insert into j1 values( 3 );
insert into j1 values( 4 );
insert into j1 values( 5 );

create table j2( id integer);
insert into j2 values( 1 );
insert into j2 values( 2 );
insert into j2 values( 5 );

select j1.id,
       case when j2.id is null  then 'unknown' else j2.id||'' end
from j1 left join j2  using (id);
...
Рейтинг: 0 / 0
left outer join + defult значения
    #33903962
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, не знал, что так можно.
...
Рейтинг: 0 / 0
left outer join + defult значения
    #33903973
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для этого служит функция coalesce

Вышеуазанный запрос преобразуется к виду

Код: plaintext
1.
2.
3.
select 
   j1.id,
   coalesce(j2.id,'unknown')
from j1 left join j2  using (id);
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / left outer join + defult значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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