sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres returnerar [null] istället för [] för array_agg i join-tabellen

Ett annat alternativ kan vara array_remove(..., NULL) (introducerades i 9.3 ) om tags.tag är NOT NULL (annars kanske du vill behålla NULL värden i arrayen, men i så fall kan du inte skilja på en enda befintlig NULL tagg och en NULL taggen på grund av 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

Om inga taggar hittas returneras en tom array.



  1. Returnera dubbletter av poster (activerecord, postgres)

  2. Fel:R kan inte ansluta till MySQL

  3. kontrollera anslutningen från C#-appen till oracle 10g-databas

  4. onCreate() av ​​RoomDatabase.Callback() anropades inte efter ett lyckat anrop till .build()