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: