SQL - 将一个表中多列的两行匹配到另一个表中的一行。

时间:2016-03-16 20:58:17

标签: mysql sql sql-server postgresql

我正试图在postgres中找到一种方法,将我的一个表中的两列与另一个表中的一列匹配,而不删除第一个表列。我可能不会这么解释,所以这是一个例子

label1.text = code1;
label2.text = code2;
label3.text = code3;
label4.text = code4;

我想找回一个表格,其中col2和col3都可以匹配2col1中的内容,并将它们的值替换为2col2中的值。

结果将是:

Table 1:                        Table 2:
col1    col2    col3            2col1   2col2 
1       A       B               A       13.1  
2       A       C               B       18.3
3       B       C               C       21.7
4       B       D               D       11.23

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT t1.col1, t2.2col2 AS col2, t3.2col2 AS col3
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.col2 = t2.2col1
LEFT JOIN table2 AS t3 ON t1.col3 = t2.2col1

答案 1 :(得分:1)

这可以帮到你。 LEFT JOIN是你的朋友

SELECT
  t1.col1,
  t2.2col2,
  t3.2col2
FROM table1
LEFT JOIN table2 AS t2 ON t1.col2 = t2.2col1
LEFT JOIN table2 AS t3 ON t1.col3 = t3.2col1;