我有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
的相应列?
答案 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