Difference between two tables I am trying to pull the differences between two tables, each in a different database.  I thought I could just do a full outer join but I am getting back too many results.

The T-SQL below returns 167 results

SELECT N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], description [Full] FROM [db1].[dbo].[tb1] where delete_date is null
except
SELECT ObjectGUID [GUID], GivenName [First], sn [Last], displayName [Full] FROM [db2].[dbo].[tb1]


When I reverse it to be the below, it returns 214 results

SELECT ObjectGUID [GUID], GivenName [First], sn [Last], displayName [Full] FROM [db2].[dbo].[tb1]
except
SELECT N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], description [Full] FROM [db1].[dbo].[tb1] where delete_date is null


However, I need more than just those columns from the databases, so I can't use the except statement.

select N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], db1.dbo.tb1.description [Full], domain_user_id, sAMAccountName, employeeID 
from db1.dbo.tb1
full outer join [db2].[dbo].[tb1]
on ObjectGUID = N'{'+ADobjectGUID+N'}'
    and first_name = GivenName
    and last_name = sn
    and tb1.description = displayName
where db1.dbo.tb1.delete_date is null


That query results in 1784 results.  Based on the above, I should be getting 371 results.  What am I missing.  I am still new to SQL and am sure it is something small.
FULL joins can be tricky. Try this version:

select
    -- columns from db1 
    a_GUID = a.ObjectGUID,
    a_First = a.first_name, 
    a_Last = a.last_name, 
    a_Full = a.description, 
    a.domain_user_id, 
    a.sAMAccountName, 
    a.employeeID,

    -- columns from db2
    b_GUID = N'{' + b.ADobjectGUID + N'}',  
    b_First = b.GivenName, 
    b_Last = b.sn, 
    b_Full = b.displayName, 
from 
    ( select * 
      from db1.dbo.tb1 as a 
      where a.delete_date is null
    ) as a
  full outer join 
    db2.dbo.tb1 as b
  on 
      a.ObjectGUID = N'{' + b.ADobjectGUID + N'}'
  and a.first_name = b.GivenName
  and a.last_name = b.sn
  and a.description = b.displayName
where 
      a.ObjectGUID is null
   or b.ADobjectGUID is null
  ;