Sql 如何在没有匹配字段的情况下联接两个选择?
我需要用这两个选项创建一个DIM_团队。第一个来自NBA球队,第二个来自WNBA球队Sql 如何在没有匹配字段的情况下联接两个选择?,sql,sql-server,etl,pentaho,pdi,Sql,Sql Server,Etl,Pentaho,Pdi,我需要用这两个选项创建一个DIM_团队。第一个来自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_Est
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)
这应该是我的预期输出
使用。您需要选择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数据集成工具,使用排序合并步骤来实现这一点,该步骤在“设计”部分的“连接”类别下提供
是否要
联合所有?联接用于包括两个表的列。您需要一个UNION或UNION ALL来包含两个表的行。您可能可以通过对NBA和WNBA团队执行UNION ALL
来优化查询,然后只连接一次团队代码和状态表(而不是这里的每个子查询一个)。
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)