【发布时间】:2013-11-10 17:50:39
【问题描述】:
如果表包含某种类型的记录,我如何为表创建一个视图,其中包含表记录的子集、表的所有列以及附加的“标志”列,其值设置为“X”?例如,考虑以下关系表Relations,其中类型的值代表H'-human, 'D'-dog:
id | type | relation | related
--------------------------------
H1 | H | knows | D2
H1 | H | owns | D2
H2 | H | knows | D1
H2 | H | owns | D1
H3 | H | knows | D1
H3 | H | knows | D2
H3 | H | treats | D1
H3 | H | treats | D2
D1 | D | bites | H3
D2 | D | bites | H3
此表中可能没有任何特定的记录顺序。
我试图创建一个视图Humans,它将包含来自Relations 的所有人对狗knows 关系以及所有Relations 的列和附加列isOwner,如果存储'X'特定关系中的人拥有某人:
id | type | relation | related | isOwner
------------------------------------------
H1 | H | knows | D2 | X
H2 | H | knows | D1 | X
H3 | H | knows | D1 |
但为此苦苦挣扎。你知道一种方法吗,最好是在一个CREATE VIEW 电话中,或者真的有什么方法吗?
【问题讨论】:
-
@plalx,一点也不。谢谢你们@plalx 和@1_CR 的精彩回答!我希望我能接受两者,因为最终版本是他们的组合。关于
owns VS related only,我想要的是related = r.related,但不得不承认我没有在问题中正确说明这一点。再次感谢你们——你们帮了我很多!
标签: sql sql-server