【发布时间】:2012-08-20 16:56:44
【问题描述】:
我有一个视图 V 从几个表中选择数据。我还有一个表 T,它定义了允许用户查看 V 中哪种类型的数据。
对于用户而言,如果T中没有数据,则意味着他可以在我的视图V中看到所有内容,但如果中有数据T,那么我需要限制我的视图结果V。
所以在我看来,如果 T 中没有任何内容,我需要执行 V Left join T 或如果 T 中有内容,我需要执行 V INNER JOIN T。
但我不太确定如何编写此查询以获得可能的最佳性能(就服务器执行而言),提供视图 V 可能已经是一个不那么快的查询执行。我应该首先从 B 中选择所有内容并将其存储在某个变量或临时表中吗?还是可以使用我至今未听说过的巧妙的 SQL 语法轻松完成所有事情?
【问题讨论】:
-
请显示样本数据和所需结果。你的单词问题是无形的,非常分散注意力。
-
抱歉,我认为通过不深入细节来保持简单是一个更好的主意,但现在我明白你的意思了!
标签: sql-server join left-join inner-join