У меня есть таблица table
, и я пытаюсь показать все строки с id
в определенном списке. Если нет строк с этим идентификатором, я бы отобразил null
значений.
Очевидно, что если бы эти id
, которые я хочу выбрать, находились в другой таблице, то решением был бы просто оператор right join
.
Проблема в том, что такой таблицы не существует, и пользователь вводит список id
s.
Я пытаюсь решить эту проблему с помощью инструкции right join (values ..) on ..=..
. Но я не могу указать имя столбца для вложенного оператора (со статическими value
s). И поэтому я не могу написать действительное предложение on
.
Например, у меня есть таблица table
:
id val
-- --
0 0.1
2 -0.5
7 1.1
Затем пользователь динамически выбирает список id
s, который не обязательно содержится в списке id
s таблицы. Например, если пользователь выбирает 0,1,2,3
, я должен отобразить:
id val
-- --
0 0.1
1 null
2 -0.5
3 null
Я пытаюсь сделать что-то вроде
select * from table right outer join (
values (0),(1),(2),(3)
) as static_values on table.id = static_values[1]
Очевидно, что static_values[1]
неправильно, но я должен назвать столбец, чтобы выполнить join
, и я не знаю, как еще это сделать.