test=*# select * from xy;
id | articles
----+----------
1 | {1,2,3}
(1 row)
test=*# select * from artikel ;
id | name
----+------
1 | art1
2 | art2
3 | art3
(3 rows)
test=*# select artikel.name from artikel where id in (select unnest(articles) from xy where id=1 );
name
------
art1
art2
art3
(3 rows)
Vorher:
CREATE OR REPLACE FUNCTION unnest(ANYARRAY) RETURNS SETOF ANYELEMENT LANGUAGE SQL AS $$SELECT $1[i] FROM generate_series(array_lower($1,1),array_upper($1,1)) i;$$;
Dann bei David dafür bedanken und weiter wie oben.