2017-08-08 134 views
0

未分組列「ev.title」我有這樣一個查詢:問題PostgreSQL的錯誤:使用子查詢從外部查詢

select c.id, c.name, c.website, c.longdescription, c.description, c.email, 
    (SELECT jsonb_agg(ev) FROM 
     (SELECT ev.title, ev.description, ev.longdescription, 
      (SELECT jsonb_agg(ed) FROM 
       (SELECT ed.startdate, ed.enddate, ed.id WHERE ed.id notnull)ed) as dates, ev.id WHERE ev.id notnull) ev) as events, 
    (SELECT jsonb_agg(ca) FROM (SELECT ct.zip, ca.id, ca.street1, ca.street2, ca.addresstype_id, ST_Y(ca.geopoint::geometry) as latitude, ST_X(ca.geopoint::geometry) as longitude 
    WHERE ca.id notnull)ca) as addresses 
FROM companies c 
LEFT JOIN events ev ON ev.company_id = c.id 
LEFT JOIN companyaddresses ca ON ca.company_id = c.id 
LEFT JOIN cities ct ON ct.id = ca.city_id 
LEFT JOIN eventdates ed ON ed.event_id = ev.id 
GROUP by c.id 

我收到錯誤「ERROR:子查詢使用未分組列」 ev.title 「從 外部查詢位置:125」。

無法弄清楚如何爲子查詢正確分組。有什麼建議麼?

回答

0

這給一試:

SELECT c.id, c.name, c.website, c.longdescription, c.description, c.email, 
    (SELECT jsonb_agg(ev) FROM 
        (SELECT even.title, even.description, even.longdescription, 
            (SELECT jsonb_agg(ed) FROM 
                (SELECT eventdates.startdate, eventdates.enddate, eventdates.id FROM eventdates WHERE eventdates.event_id = even.id)ed) as dates, 
        even.id FROM events even WHERE even.company_id = c.id) ev) as events, 
jsonb_agg((SELECT ca FROM (SELECT ct.zip, ca.id, ca.street1, ca.street2, ca.addresstype_id, ST_Y(ca.geopoint::geometry) as latitude, ST_X(ca.geopoint::geometry) as longitude WHERE ca.id notnull)ca)) as addresses 
FROM companies c 
LEFT JOIN companyaddresses ca ON ca.company_id = c.id 
LEFT JOIN cities ct ON ct.id = ca.city_id 
Group by c.id