• This will come close to what you want:

    declare @two table (id int, value int)

    insert into @one select 1, 11 union all select 2, 12 union all select 3, 13 union all select 4, 14

    insert into @two select 1, 21 union all select 2, 21 union all select 1, 31 union all select 2, 32

    select *

    from @one one

    full outer join @two two

    on one.id = two.id

    Only the duplicates of the non-matching rows won't be produced by the above query.

    Edit: I see Chriss provided a sample including the duplicates...

    ** Don't mistake the ‘stupidity of the crowd’ for the ‘wisdom of the group’! **