what I want is:

来源: 2013-03-05 20:07:37 [博客] [旧帖] [给我悄悄话] 本文已被阅读:

if pk exists in both Table A and B, ignor record in Table B

if pk exist either in Table A or B, return it

think should union 3:

SELECT A.PK AS A_PK, A.Value AS A_Value FROM Table_A A INNER JOIN Table_B B ON A.PK = B.PK
UNION
SELECT A.PK AS A_PK, A.Value AS A_Value FROM Table_A A LEFT JOIN Table_B B ON A.PK = B.PK WHERE B.PK IS NULL
UNION
SELECT B.Value AS B_Value, B.PK AS B_PK FROM Table_A A RIGHT JOIN Table_B B ON A.PK = B.PK WHERE A.PK IS NULL

hope it works