繁体   English   中英

SQL内部联接到同一表,在多列上,多次

[英]SQL inner join to the same table, on multiple columns, multiple times

我有一个表来保存sql视图的关系

**ID**  VIEW1 VIEW2 COLUMN          RELATIONSHIP
**1**   1     2     SalesOrderID    INNER JOIN
**5**   1     3     SalesOrderID    INNER JOIN
**6**   2     4     ProductID       INNER JOIN

建立视图4和视图3之间的关系,我必须使用ID 1行作为中间引用,在MSSQL中有一种可行的方法可以完成此任务

我怀疑您需要这样的东西:

select v3.*, v4.*
from View1 as v1
    inner join View2 as v2 on v2.SalesOrderID = v1.SalesOrderID
    inner join View3 as v3 on v3.SalesOrderID = v1.SalesOrderID
    inner join View4 as v4 on v4.ProductID = v2.ProductID

-或(仅适用于内部联接)-

select v3.*, v4.*
from View1 as v1
    ,View2 as v2 
    ,View3 as v3
    ,View4 as v4
where
    v2.SalesOrderID = v1.SalesOrderID
    and v3.SalesOrderID = v1.SalesOrderID
    and v4.ProductID = v2.ProductID

正如弗拉基米尔·巴拉诺夫(Vladimir Baranov)在以上评论中所建议的那样-如果您需要以编程方式构建此选择(即表中的数据以保存sql视图随时间的变化关系 ),则必须处理动态SQL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM