在sql server中加入两个视图
Posted
技术标签:
【中文标题】在sql server中加入两个视图【英文标题】:Join two views in sql server 【发布时间】:2016-07-14 11:19:31 【问题描述】:查看1
+------+---------------+
|PERSON | CONTACTLIST |
+------+---------------+
| A | CONT1 |
| A | CONT2 |
| A | CONT5 |
| B | CONT1 |
| B | CONT3 |
| C | CONT2 |
+------+---------------+
视图2
+------+------------------+
|PERSON | MEETINGS WITH |
+------+------------------+
| A | CONT7 |
| A | CONT8 |
| A | CONT1 |
| A | CONT2 |
| B | CONT1 |
| B | CONT3 |
| B | CONT4 |
| C | CONT1 |
| C | CONT2 |
| C | CONT3 |
| C | CONT4 |
| C | CONT5 |
+------+---------------+
想要的结果
+------+------------------+ -------+
|PERSON | MEETINGS WITH | |
+------+------------------+ -------+
| A | CONT7 | 0 |
| A | CONT8 | 0 |
| A | CONT1 | 1 |
| A | CONT2 | 1 |
| B | CONT1 | 1 |
| B | CONT3 | 1 |
| B | CONT4 | 0 |
| C | CONT1 | 0 |
| C | CONT2 | 1 |
| C | CONT3 | 0 |
| C | CONT4 | 0 |
| C | CONT5 | 0 |
+------+---------------+ + -------+
我有“查看1”包含每个人的联系人列表! 一个人可以结识多个联系人,可以和他的联系人列表中的一个联系人开会,也可以不开会!
我想放置一个标志,表明会议是否与联系人列表中的联系人进行了会议!
【问题讨论】:
【参考方案1】:然后是这样的
select v2.PERSON,
v2.[MEETINGS WITH],
case when v1.PERSON is null then 0 else 1 end as FLAG
from view2 v2
left outer join view1 v1 on v2.PERSON = v1.PERSON and v2.[MEETING WITH] = v1.CONTACTLIST
【讨论】:
【参考方案2】:试试这个
SELECT
V.PERSON,
V.[MEETINGS WITH],
(
SELECT COUNT(1)
FROM
view1
WHERE
view1.PERSON = V.PERSON AND
view1.CONTACTLIST = V.[MEETINGS WITH]
) Counts
FROM
View2 V
【讨论】:
以上是关于在sql server中加入两个视图的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 pyspark 中加入两个临时视图后删除列不起作用,但它适用于数据框连接?
如何在 mvc 3.0 EF 5 中加入两个模型并在视图中显示它们
有没有办法在 SQL 中加入两个查询,每个查询都有一个 order by?