Subject Re: [firebird-support] Help with a query
Author Paul Vinkenoog
Hi Fulvio,

> I have two tables, for example TableA and TableB.
>
> Each row of TableA contains a foreign key to a row of TableB.
> This a 1 to 1 relation, so each row of TableA is linked to one different
> row of TableB.
> The foreign key field can also be NULL, in this case the TableA row is
> not connected to a TableB row.
>
> All TableB rows depend logically on TableA rows, so all TableB rows
> should be linked by a TableA row.
>
> I would like to check for program errors during development, so I would
> like to know if there are "orphans" TableB rows.
>
> May somebody suggest me a good way to find the rows in TableB that are
> not connected from any row in TableA?

Why not reverse the link then, and make sure the foreign key field in
TableB is NOT NULL?

But if that's not an option, you can periodically check for orphans with

select <columns> from TableB b where not exists
(select * from TableA a where a.<fk> = b.<target>)


Kind regards,
Paul Vinkenoog