SQL从2个具有优势的表中选择

时间:2015-11-13 06:13:33

标签: sql sql-server

任何人都可以帮助在1 sql语句中得到这个结果吗? 我有2个表,第二个表比第一个表占优势 - 如下:

表A

Code  |  Quantity
  1         5
  3         5
  4         5

表B

Code  |  Quantity
  1         5
  2         1
  4         6

查询结果

Code  |  Quantity
  1         5   - code exists in both - return record from TableB
  2         1   - distinct only in TableB
  3         5   - distinct only in TableA
  4         6   - code exists in both - return record from TableB

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:6)

FULL JOIN会:

SELECT COALESCE(t1.Code, t2.Code) AS Code,
       COALESCE(t2.Quantity, t1.Quantity) AS Quantity
FROM TableA AS t1 
FULL OUTER JOIN TableB AS t2 ON t1.code = t2.code

COALESCE(t2.Quantity, t1.Quantity)基本上实现了对TableB TableA' 的要求:QuantityTableA获取仅在TableB没有匹配记录的情况下FULL JOIN

有关{{1}}如何运作的说明,您可以查看here

  

FULL OUTER JOIN,包括两个表中的所有行,无论如何   另一个表是否具有匹配值。