【发布时间】:2018-10-22 15:14:53
【问题描述】:
初始数据示例:
Table 1 Table 2
| ID | Name | Cost | Cost2 | | ID | Info1 | Info2 |
|-------|----------|---------|---------| |-------|-----------|-----------|
| 1 | Name1 | 20 | 50 | | 1 | text1 | text1 |
| 2 | Name2 | 30 | 10 | | 1 | text1 | text1 |
| 2 | Name22 | 30 | 40 | | 1 | text1 | text1 |
| 3 | Name3 | 20 | 50 | | 2 | text21 | text21 |
| 4 | Name4 | 30 | 70 | | 2 | text22 | text22 |
| 2 | text23 | text23 |
| 2 | text24 | text24 |
在我的初始数据中,我通过字段 ID 在 2 个表之间建立了关系。我需要将第二张桌子加入第一张桌子。
所以这是Leftjoin by table1.ID = table2.ID 的简单结果
| ID | Name | Cost | Cost2 | Info1 | Info2 |
|-------|----------|---------|---------|-----------|-----------|
| 1 | Name1 | 20 | 50 | text1 | text1 |
| 1 | Name1 | 20 | 50 | text1 | text1 |
| 1 | Name1 | 20 | 50 | text1 | text1 |
| 2 | Name2 | 30 | 10 | text21 | text21 |
| 2 | Name2 | 30 | 10 | text22 | text22 |
| 2 | Name2 | 30 | 10 | text23 | text23 |
| 2 | Name2 | 30 | 10 | text24 | text24 |
| 2 | Name22 | 60 | 40 | text21 | text21 |
| 2 | Name22 | 60 | 40 | text22 | text22 |
| 2 | Name22 | 60 | 40 | text23 | text23 |
| 2 | Name22 | 60 | 40 | text24 | text24 |
如何在不通过join 对字段(成本、成本2)进行复制的情况下获得结果
预期结果:
| ID | Name | Cost | Cost2 | Info1 | Info2 |
|-------|----------|---------|---------|-----------|-----------|
| 1 | Name1 | 20 | 50 | text1 | text1 |
| 1 | Name1 | NULL | NULL | text1 | text1 |
| 1 | Name1 | NULL | NULL | text1 | text1 |
| 2 | Name2 | 30 | 10 | text21 | text21 |
| 2 | Name2 | NULL | NULL | text22 | text22 |
| 2 | Name2 | NULL | NULL | text23 | text23 |
| 2 | Name2 | NULL | NULL | text24 | text24 |
| 2 | Name22 | 30 | 40 | text21 | text21 |
| 2 | Name22 | NULL | NULL | text22 | text22 |
| 2 | Name22 | NULL | NULL | text23 | text23 |
| 2 | Name22 | NULL | NULL | text24 | text24 |
【问题讨论】:
-
您可以在使用连接查询时尝试使用 distinct。这能正确解决问题吗?
标签: sql sql-server sql-server-2017