如何加入两个没有匹配字段的选择?

How to join two selects with no matching fields?

我需要用这两个选择创建一个 DIM_TEAMS。第一名来自NBA球队,第二名来自WNBA球队。

SELECT
E.pk_estado_eeuu, D.pk_division, LEAGUE, CODE, 
EQUIPO, CIUDAD, PABELLON, FUNDADO, PATROCINIO,
T.CONFERENCIA
FROM
STG_NBA_TEAMS T
INNER JOIN STG_TEAM_CODES TC ON(T.EQUIPO = TC.TEAM)
INNER JOIN DIM_Estados_EEUU E ON (T.ESTADO = E.codigo)
INNER JOIN DIM_Divisiones D ON(D.division = T.DIVISION)

SELECT
e.pk_estado_eeuu,LEAGUE,CODE, EQUIPO,
CIUDAD, WT.CONFERENCIA
FROM
STG_WNBA_TEAMS WT
INNER JOIN STG_TEAM_CODES TC ON(WT.EQUIPO = TC.TEAM)
INNER JOIN DIM_Estados_EEUU E ON (WT.ESTADO = E.nombre)

这应该是我的预期输出

使用union operator。您需要 SELECT NULL 在没有从一个字段到另一个字段的地方:

SELECT
    E.pk_estado_eeuu, 
    D.pk_division, 
    LEAGUE, 
    CODE, 
    EQUIPO, 
    CIUDAD, 
    PABELLON, 
    FUNDADO, 
    PATROCINIO,
    T.CONFERENCIA
FROM
STG_NBA_TEAMS T
INNER JOIN STG_TEAM_CODES TC ON(T.EQUIPO = TC.TEAM)
INNER JOIN DIM_Estados_EEUU E ON (T.ESTADO = E.codigo)
INNER JOIN DIM_Divisiones D ON(D.division = T.DIVISION)
UNION
SELECT
    e.pk_estado_eeuu,
    NULL AS pk_division,
    LEAGUE,
    CODE, 
    EQUIPO,
    CIUDAD, 
    NULL AS PABELLON, 
    NULL AS FUNDADO, 
    NULL AS PATROCINIO,
    WT.CONFERENCIA
FROM
STG_WNBA_TEAMS WT
INNER JOIN STG_TEAM_CODES TC ON(WT.EQUIPO = TC.TEAM)
INNER JOIN DIM_Estados_EEUU E ON (WT.ESTADO = E.nombre)

您还可以使用 Pentaho 数据集成工具实现此目的,该工具使用排序合并步骤,可在设计部分的连接类别下获得。