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.
-
Please always supply complete function definition including the function header, which is an integral part and probably also part of your problem at hand.Erwin Brandstetter– Erwin Brandstetter2013年12月01日 14:41:48 +00:00Commented Dec 1, 2013 at 14:41
1 Answer 1
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.