Ad

Returning The Result Of A Subquery As A Field

- 1 answer

I am essentially trying to return the result of a subquery in a field of my outer query like so:

SELECT field1, field2, field8 = (SELECT * FROM TABLE)
FROM OTHERTABLE

I found an example of my intended functionality here but it doesn't seem to work on mariadb (which from what I can gather is just mysql). Is there a way to do this with mysql or am I missing something? I'm getting an "Unknown column 'field8' in 'field list'".

I'm using a node mysql module and I hope to achieve

[{
   field1: something,
   field2: somethingelse,
   field8: [{
              data, data, data
           },{
              data, data, data
           }] 
}]

If this isn't possible, I can always perform two separate queries

Ad

Answer

Fix the syntax, and use JSON_ARRAYAGG() to convert the rowset to json:

SELECT
    field1,
    field2,
    JSON_ARRAYAGG((SELECT * FROM TABLE)) as field8
FROM OTHERTABLE
GROUP BY field1, field2
Ad
source: stackoverflow.com
Ad