【发布时间】:2021-10-05 18:53:15
【问题描述】:
我有Table1 和Table2 表。 Table1 具有 B(主键)和 IC 列。 Table2 具有 CC、SC 和 IC 列:
表Table1
| ... | B | IC | ... |
|---|---|---|---|
| ... | B1 | IC1 | ... |
表Table2
| ... | CC | SC | IC | ... |
|---|---|---|---|---|
| ... | CC1 | SC1 | IC1 | ... |
| ... | CC1 | SC2 | IC1 | ... |
| ... | CC2 | SC1 | IC1 | ... |
| ... | CC2 | SC2 | IC1 | ... |
我想查询Table1,通过B 列的值过滤其行。找到行后(我只找到一个,因为B 是PK),我想使用IC 列的对应值来查询Table2 中与IC 值相同的行从第一步获得的IC 列之一。所以,我想通过特定的 CC 和 SC 值过滤这些行。
以上表述解释了这个概念:
- 我在
Table1查询B值为B1的行。 - 我知道对应的
IC值是IC1。 - 我在
Table2中查询IC值与前一个IC1相同的行,并且我想通过特定的CC2和SC1值过滤找到的行。因此,在这种情况下,所需的结果是Table2的第三行。
他们告诉我尽可能使用视图。我知道我不能将输入传递给视图;此外,我不想使用存储过程。如何创建一个视图来获取所有IC 值从Table1 的IC 列获得的Table2 行,并通过特定的CC 和SC 值过滤这些行?也许我需要使用子查询?我需要使用联接吗?感谢您的帮助。
【问题讨论】:
-
听起来您需要一个简单的
inner join,您可以创建一个view来执行此操作,然后将您的过滤条件应用于视图 - 从您的描述中并不完全清楚,因此添加所需结果你的问题。 -
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
标签: sql sql-server tsql subquery sql-view