Postgresql – Calling another function inside a postgres function

functionsjoin;postgresql

I have a function A and function B.

Function A Name is f_a() and the code is:

Select id,address from A;

Function B Name is f_b() code is:

Select C.address,B.name 
From 
(Select id,name from B,
(Select * from f_a()) as C 
Where C.id = B.id;

However, when I execute the select * from f_b() the Error message says C.id does not exist. How can I run the function f_a() inside f_b().

Above function A and B are functions which returns table. I omitted the function head and end.

Best Answer

Your syntax is twisted in several ways. If the return type of function A is defined as RETURNS TABLE (id int, address text), it could work like this:

Select A.address, B.name 
FROM   f_a() A
JOIN   B USING (id);

Aside: While your identifiers look alright for the purpose, I strictly use legal, lower case identifiers to avoid complications.