将列中的值替换为另一列

时间:2016-03-03 13:26:06

标签: mysql sql join

我有2个具有以下结构的表:

tab1:
| ID | Name  | Col1 |
|----|-------|------|
| 1  | Peter | Null |
| 2  | Lisa  | Null |
| 3  | Eddy  | Null |

tab2:
| ID | Col1 |
|----|------|
| 1  | Abc  |
| 1  | Def  |
| 2  | Ghi  |

我想以这样的方式加入这些表格,col1 tab2的所有值都显示在col1的{​​{1}}中。所以tab1应该被替换:

col1

适用于| ID | Name | Col1 | |----|-------|------| | 1 | Peter | Abc | | 1 | Peter | Def | | 2 | Lisa | Ghi |

right join

但在此我指定我只希望SELECT tab1.id, name, tab2.col1 FROM tab1 right Join tab2 On tab1.id=tab2.id 显示col1,而不是来自tab2。在实际情况中,有很多列,我不想指定每个列。

那么是否有更通用的方法将tab1的列替换为tab1的相应列?

2 个答案:

答案 0 :(得分:0)

您是否尝试过运行

SELECT tab1.ID, tab1.Name, tab2.* FROM tab1, tab2 WHERE tab1.ID=tab2.ID;

应该这样做

答案 1 :(得分:0)

使用内联视图,您只能从tab1返回名称和ID,然后加入表2,然后您就不必为columsn添加别名。因为它们不会出现在生成的T1中......

Select T1.*, T2.* from tab2 t2
LEFT JOIN (Select ID, Name from tab1) T1
 on T1.ID = T2.ID

Select * from tab2 t2
RIGHT JOIN (Select ID, Name from tab1) T1
 on T1.ID = T2.ID