Друга опция може да е array_remove(..., NULL) (въведено в 9.3
), ако tags.tag е NOT NULL (в противен случай може да искате да запазите NULL стойности в масива, но в този случай не можете да направите разлика между един съществуващ NULL етикет и NULL поради LEFT JOIN ):
SELECT objects.*,
array_remove(array_agg(tags.tag), NULL) AS tags,
FROM objects
LEFT JOIN taggings ON objects.id = taggings.object_id
LEFT JOIN tags ON tags.id = taggings.tag_id
Ако не бъдат намерени етикети, се връща празен масив.