合并2个表而不会丢失任何数据

时间:2017-07-19 15:27:44

标签: sql sql-server

我的第一张桌子(实际上是一个视图)是:

SELECT * FROM VW_MAIN_INFO

我的第二张表是:

SELECT * FROM TBL_POINTS_AND_CYCLES

在查询中,我将两者结合起来:

SELECT TP.TYPE,VMI.*
FROM VW_MAIN_INFO VMI,
     TBL_POINTS_AND_CYCLES TP
WHERE VMI.START_INLET_TEMP=TP.TEMP1
AND   VMI.START_OUTLET_TEMP=TP.TEMP2
AND   VMI.TIME_FORMATTED=CONVERT(DATETIME, TP.DATE, 101)

你可以告诉我,在第二个表(TBL_POINTS_AND_CYCLES)中对我来说真正重要的是“TYPE”字段。

我需要什么帮助:

我需要从VW_MAIN_INFO和TYPE(来自TBL_POINTS_AND_CYCLES)返回所有内容。

  • 但是,如果我在TBL_POINTS_AND_CYCLES中找不到类型,我应该返回一个特定值(例如,“EMPTY”或null)。

我怎样才能实现?使用“减号”的最佳途径是this吗?

最后,我的减号问题是我在两个表中都没有相同的结构。

有任何帮助吗?想法?

谢谢。

1 个答案:

答案 0 :(得分:3)

SELECT  TP.TYPE ,
        VMI.*
FROM    VW_MAIN_INFO VMI
        LEFT JOIN TBL_POINTS_AND_CYCLES TP ON VMI.START_INLET_TEMP = TP.TEMP1
                                              AND VMI.START_OUTLET_TEMP = TP.TEMP2
                                              AND VMI.TIME_FORMATTED = CONVERT(DATETIME, TP.DATE, 101);