代码之家  ›  专栏  ›  技术社区  ›  JeffO

SQL-它是什么类型的联接,以及重写的最佳方法?

  •  1
  • JeffO  · 技术社区  · 15 年前

    我们的第三方应用程序具有以下自定义视图:

    FROM dbo.vwPositionAssetSubWeight 
    INNER JOIN dbo.vwPositionAssetSubTotal 
        ON dbo.vwPositionAssetSubWeight.AssetID = dbo.vwPositionAssetSubTotal.AssetID 
    FULL OUTER JOIN dbo.vwPositionAssetPendingTrades 
        ON dbo.vwPositionAssetSubWeight.AssetID = dbo.vwPositionAssetPendingTrades.AssetID
    , dbo.vwPositionPortfoliosTotal
    

    注意:没有WHERE子句。

    有些混乱是有道理的,但是我不知道最后一个视图是如何加入的,或者可能没有加入。dbo.vwpositionportfoliostotal是否是所有内容的交叉联接?这是我的猜测。另外,dbo.vwpositionportfoliostotal返回一行。

    最好的重写方法是什么,这样对下一个开发人员有意义?

    哦,没有别名,111个返回的字段,没有文档,注释,提示,甚至面包屑的痕迹。

    5 回复  |  直到 15 年前
        1
  •  2
  •   Amy B    15 年前

    SELECT *
    FROM a, b
    
    SELECT *
    FROM a CROSS JOIN b
    

        2
  •  2
  •   Locksfree    15 年前

        3
  •  2
  •   manji    15 年前

    , dbo.vwPositionPortfoliosTotal dbo.vwPositionPortfoliosTotal

    vwPositionPortfoliosTotal

        4
  •  2
  •   Donald Byrd    15 年前

    dbo.vwPositionPortfoliosTotal dbo.vwPositionPortfoliosTotal.[column] = dbo.[table].[column]

        5
  •  0
  •   Welbog    15 年前

    FROM SELECT

    SELECT *
    FROM a, b
    

    a b

    SELECT *
    FROM a
    CROSS JOIN b