我正在使用第三方SQL Server数据库,其中包含下面的两个表(简化),我想将它们合并到一个视图中。
文档表包含以下列:
ID 主键
“其他专栏”。
DocumentTag 表包含以下列: 的 FromDocumentID 的 ToDocumentID 代码
如何创建 Document.ID ,标记,“其他列”形式的视图?
将每个文档加入其标记(是的,重复),而不是在文档标记表中查找正确的ID范围。
[编辑]一个例子:
文件表
ID | Description | Owner ....
------+-------------+---------
1 | blah | me
2 | blah 2 | me
3 | blah 3 | Alice
4 | blah 4 | Bob
5 | blah blah | me
6 | blah blah 2 | Bob
7 | blah blah 3 | Alice
8 | blah blah 4 | Alice
文档标记表
FromDocumentID | ToDocumentID | Tag | ...
---------------+--------------+-------------+----
1 | 3 | Bananas
4 | 4 | Crocodiles
5 | 5 | Bananas
6 | 8 | Donuts
我想拥有的是
ID | Description | Owner | Tag | ....
------+-------------+--------+----------+-----
1 | blah | me | Bananas
2 | blah 2 | me | Bananas
3 | blah 3 | Alice | Bananas
4 | blah 4 | Bob | Crocodiles
5 | blah blah | me | Bananas
6 | blah blah 2 | Bob | Donuts
7 | blah blah 3 | Alice | Donuts
8 | blah blah 4 | Alice | Donuts
答案 0 :(得分:1)
如果标签适用于范围
的许多文档select D.ID, T.Tag, D.Other1, D.Other2
from Document D
left join DocumentTag T on D.ID between T.FromDocumentID and T.ToDocumentID
如果标签通过ID应用于2个特定文档。这也显示了视图的创建
create View DocumentWithTag
as
select D.ID, T.Tag, D.Other1, D.Other2
from Document D
left join DocumentTag T on D.ID in (T.FromDocumentID, T.ToDocumentID)