Perhaps this helps:

CREATE AGGREGATE concat (
    BASETYPE = text,
    SFUNC    = textcat, -- is function of operator 'text || text'
    STYPE    = text,
    INITCOND = ''
);


SELECT P.personid, P.name, concat( N.note ) AS allnotesbythisperson FROM tblperson AS P INNER JOIN tblnotes AS N ON N.personid=P.personid WHERE P.personid=34 GROUP BY P.personid, P.name;

Regards, Janko


Erwin Moller wrote:
Hi!

I face the following problem:
2 tables: tblperson and tblnotes
tblperson:
colums: personid (PK), name

tblnotes:
colums: noteid(PK), personid(references tblperson(personid)), note

tblnotes has notes stored written by a person from tblperson identified (FK) by its personid.

I make a select on one table with certain criteria and want to have a concatenation on a subquery results.
Something like this:


SELECT P.personid, P.name,
concat(SELECT N.note FROM tblnotes AS N WHERE (N.personid=P.personid) ) AS allnotesbythisperson
FROM tblperson AS P WHERE (P.personid=34);


The concat word I use is pure fantasy.
Is this at all possible?

I know I can easily circumvent te problem by my scriptinglanguage (PHP), but that will result in many extra queries.

How do I proceed?

TIA!!

Regards,
Erwin Moller


---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to