with pizzas AS( select p.pizzaid, p.name, p.calzone, i.imageid, i.url, i.copyrightshort, i.copyrightlong, amount, diameter, curcurrency, array_agg(trim(t.name)) as toppings, string_agg(t.name, ',') from pizza p LEFT JOIN image i On (p.imageid = i.imageid) LEFT JOIN pizzasizeprice psp on (p.pizzaid = psp.pizzaid) LEFT JOIN price on (psp.priceid = price.priceid) LEFT JOIN size ON (psp.sizeid = size.sizeid) JOIN pizzatopping pt ON(p.pizzaid = pt.pizzaid) LEFT JOIN topping t on(pt.toppingid = t.toppingid) WHERE amount Between 5 and 10 AND diameter = 32 group by p.pizzaid, p.name, p.calzone, i.imageid, i.url, i.copyrightshort, i.copyrightlong, amount,diameter,curcurrency ) select * from pizzas p where toppings @> Array['Tomaten', 'Oliven'] order by pizzaid