The best way of doing this depends on your DBMS, you can either use NOT EXISTS
or LEFT JOIN/IS NULL
NOT EXISTS
SELECT *
FROM PersonAlias_Table pat
WHERE NOT EXISTS
( SELECT 1
FROM Person_Table pt
WHERE pt.Person_ID = pat.Person_ID
AND pt.Uniqe_ID = pat.Uniqe_ID
)
LEFT JOIN/IS NULL
SELECT *
FROM PersonAlias_Table pat
LEFT JOIN Person_Table pt
ON pt.Person_ID = pat.Person_ID
AND pt.Uniqe_ID = pat.Uniqe_ID
WHERE pt.Person_ID IS NULL
According to this answer in MySQL NOT EXISTS
is a little bit less efficient, In SQL Server LEFT JOIN / IS NULL
is less efficient, in PostgreSQL and Oracle both methods are the same, so it is really personal preference.