Как сделать псевдоним поля? help!!!

  • Автор темы CrazyHacKeRs
  • Дата начала

CrazyHacKeRs

Guest
Как сделать псевдоним поля? help!!!

Есть процедурка, которая возвращает record set, причем мне этот результат нужно соединить (Join) еще с одной таблицей.


Проблема в том, что имя поля = названию функции :(

сделать что-то типа:
PHP:
SELECT my_func as field
не получается,

а джойнить
PHP:
my_func=field2
- выдает ошибку - мол поле не должно называться также как и func


Помогите!!!

Как сделать чтоб процедура возвращала записи, при чем имя поля было бы такое - которое я захочу?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Как сделать псевдоним поля? help!!!

Автор оригинала: CrazyHacKeRs
Как сделать чтоб процедура возвращала записи, при чем имя поля было бы такое - которое я захочу?
Прочитать доку:
where from_item can be one of:

[ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]
function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
 

CrazyHacKeRs

Guest
Ну так в функции у меня и стоит alias
PHP:
-- Function: public.srv_get_table_fields(text)
CREATE FUNCTION public.srv_get_table_fields(text) RETURNS name AS 'SELECT  a.attname AS field   FROM 	pg_class c, pg_attribute a, pg_type t 
WHERE c.relname = $1 and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid AND  a.attisdropped=false   

ORDER BY a.attnum;
'  LANGUAGE 'sql' VOLATILE;
 

CrazyHacKeRs

Guest
А нужно что-то типа этого:

SELECT <поле из func>, <поле из Join> FROM srv_get_table_fields('table_name') func, table4join j

WHERE func.<поле из результата>=j.<нужное поле для связи>
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: CrazyHacKeRs
А нужно что-то типа этого:

SELECT <поле из func>, <поле из Join> FROM srv_get_table_fields('table_name') func, table4join j

WHERE func.<поле из результата>=j.<нужное поле для связи>
SELECT <поле из func>, <поле из Join> FROM srv_get_table_fields('table_name') func (pseudonym), table4join j WHERE func.pseudonym=j.<нужное поле для связи>

для кого я жирным цитату из доки подсветил?
 

CrazyHacKeRs

Guest
Да спасибо, я уже сделал - разобрался

Руки не дошли до того чтоб сказать это...
 
Сверху