Vai al contenuto

Selezionare i record senza riferimenti in una relazione padre figlio

In una relazione padre-figlio (1:m), può verificarsi che la tabella figlia abbia dei record senza alcun riferimento alla tabella padre, come selezionare questi record? Esempio preso da StackExchange.

Usando solo le espressioni di QGIS e Select by Expression , l'espressione da usare è:

NOT aggregate (
      layer:= 'tabellaPadre',
      aggregate:= 'count',
      expression:= $id,
      filter:= "campoCorrelato" = attribute (@parent,'campoCorrelato'))> 0

la logica dell'espressione è la seguente: per ogni record padre, conta il numero di figli che saranno certamente >0, negare l'espressione corrisponde a selezionare i record figli che NON hanno un genitore.


Funzioni e variabili utilizzate: