首页 > 解决方案 > 加入两列

问题描述

我有两张桌子 table_1

  NAME VALUES_WANTED
  A-1  value_1
  A-1  value_2
  A-1  value_3
  A-1  value_4
  A-1  value_5
  A-2  value_1
  A-2  value_2
  A-2  value_3
  A-2  value_4
  A-2  value_5

table_2

  NAME VALUES   TAGS
  A-1  value_1  a
  A-1  value_2  aa
  A-1  value_3  s
  A-1  value_4  b
  A-1  value_y  e
  A-1  value_x  sd
  A-2  value_1  g
  A-2  value_2  fe
  A-2  value_3  k
  A-2  value_5  m

我想得到下表:

  NAME VALUES_WANTED   TAGS
  A-1  value_1         a
  A-1  value_2         aa
  A-1  value_3         s
  A-1  value_4         b
  A-1  value_5         Null
  A-2  value_1         g
  A-2  value_2         fe
  A-2  value_3         k
  A-2  value_4         Null
  A-2  value_5         m

基本上,它类似于查找 TAGSfor VALUES_WANTED。如果VALUES_WANTED缺少table_2,它应该返回Null它的TAGS.

我知道我需要加入NAMEVALUES。一直在尝试JOIN以下不同的方法,但仍然失败......

SELECT a.NAME, a.VALUES, a.TAGS, s.VALUES_WANTED
FROM table_2 a


RIGHT JOIN table_1 s 
ON a.NAME = s.NAME 
AND a.VALUES = s.VALUES_WANTED

非常感谢任何帮助。

标签: sqlsql-serverjoin

解决方案


使用左连接

SELECT a.NAME, a.VALUES_WANTED, b.TAGS
FROM table_1 a
left JOIN table_2 b 
ON a.NAME = b.NAME 
AND a.VALUES = b.VALUES_WANTED

推荐阅读