我有两个桌子。一个包含所有服务及其价值。第二张表将描述哪些服务与哪些服务相关。
表1:
|Service|Value|
---------------
| S1 | 1 |
| S1 | 2 |
| S2 | 4 |
| S3 | 5 |
| S4 | 6 |
| S4 | 8 |
| S4 | 7 |
| S5 | 3 |
表2:相关服务。 1-N关系
|Service|Related|
|---------------|
| S1 | S3 |
| S1 | S4 |
| S2 | S5 |
因此,我希望将服务及其相关服务彼此对齐。像这样。值可以按升序显示。
|Service|Value(asc)|Related_Service|Value(asc)|
----------------------------------------------|
| S1 | 1 | S3 | 5 |
| S1 | 2 | S3 | null |
| S1 | 1 | S4 | 6 |
| S1 | 2 | S4 | 7 |
| S1 | null | S4 | 8 |
| S2 | 4 | S5 | 3 |
在SQL或T-SQL中可能吗?
答案 0 :(得分:1)
您可以使用:
SELECT a.*, b.*
FROM t2
LEFT JOIN t1 a ON t2.Service = a.Service
LEFT JOIN t1 b ON t2.Related = b.Service
ORDER BY a.value, b.value;
答案 1 :(得分:0)
这看起来像我想要的。使用Row_Number()帮助了我!
UserRepository