Re: left outer join and values()

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: left outer join and values()
Дата
Msg-id 16240.1180669690@sss.pgh.pa.us
обсуждение исходный текст
Ответ на left outer join and values()  (Tom Allison <tom@tacocat.net>)
Ответы Re: left outer join and values()
Список pgsql-general
Tom Allison <tom@tacocat.net> writes:
> select v.history.idx, v.token_idx
> from (
> values ((3,1),(3,2))) as v(history_idx, token_idx)
> left outer join history_token ht on v.history_idx = ht.history_idx
> and v.token_idx = ht.token_idx
> where ht.history_idx is null;
> ERROR:  operator does not exist: record = integer
> LINE 4: left outer join history_token ht on v.history_idx = ht.histo...
>                                                            ^

You've got too many parentheses --- the system thinks that "values"
specification is a single row containing two fields that are each
two-column records.  I think you want

select v.history_idx, v.token_idx
from (
values (3,1),(3,2)) as v(history_idx, token_idx)
left outer join history_token ht on v.history_idx = ht.history_idx
and v.token_idx = ht.token_idx
where ht.history_idx is null;

Note the "history.idx" typo as well.

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: invalid memory alloc after insert with c trigger function
Следующее
От: "Ian Harding"
Дата:
Сообщение: Re: Design Table & Search Question