替換來自列值我有2代表具有以下結構:與另一列
tab1:
| ID | Name | Col1 |
|----|-------|------|
| 1 | Peter | Null |
| 2 | Lisa | Null |
| 3 | Eddy | Null |
tab2:
| ID | Col1 |
|----|------|
| 1 | Abc |
| 1 | Def |
| 2 | Ghi |
我想以這樣的方式加入這些表,從tab2
的col1
所有值出現在tab1
col1
。所以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
的列與tab2
的相應列?
只是一個提示,大多數人發現'左連接'比'右連接'更容易理解。切換到'tab2左加入tab1'將使代碼更容易理解和維護。 – jarlh
指定每個列。 – Strawberry
@Strawberry:這就是我想要避免的。查詢應該是通用的,所以用戶只需要指定第一個表(在這種情況下'tab1',但它也可以是任何其他表),而'tab2'永遠不會改變。 – user1170330