Một tùy chọn khác có thể là array_remove(..., NULL) ( được giới thiệu trong 9.3
) if tags.tag là NOT NULL (nếu không, bạn có thể muốn giữ NULL các giá trị trong mảng, nhưng trong trường hợp đó, bạn không thể phân biệt giữa một NULL hiện có duy nhất và một thẻ NULL do thẻ 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
Nếu không tìm thấy thẻ nào, một mảng trống sẽ được trả về.