【问题标题】:How do I join my two tables?如何加入我的两张桌子?
【发布时间】:2016-06-28 15:53:32
【问题描述】:

我有两个表,我正在尝试进行连接或联合以从第二个表中提取一列。

SELECT Services,Metric_Type,services_be,Services_Be_L2,Services_Be
FROM table1
JOIN table2
ON table1.SERVICES_BE = table2.SERVICES_BE

Metric_Type 是我所需要的来自table2 的全部内容

潜在的加入

表 1

Services_Be,
SALES_NODE_LEVEL1,
Fiscal QT,
Fiscal YR,

表2

Services_Be,
Sales_L1 = SALES_NODE_LEVEL1,
Fiscal QT,
Fiscal YR

【问题讨论】:

  • 您当前的查询有什么问题吗?结果是什么?它们与您的预期有何不同?
  • 两个表中没有列 Services 和 Metric_Type ..这些列在哪里?。
  • 当前查询由于某种原因没有运行 Mustaccio 和 Scais Edge Metric_Type 只存在于第二个表中
  • 如果您在Table2 中有一个专栏Metric_Type,请编辑您的帖子并将其添加到那里。为什么你认为不列出它是可以的? Services 怎么样?

标签: sql oracle join union


【解决方案1】:

我猜这是一列定义不明确的错误。 在 select 语句中,您列出了属于两个表的字段 SERVICES_BE,并且 sql 解析器不知道您指的是哪个表。 尝试使用表别名。

    SELECT t1.Services,t2.Metric_Type,t1.services_be,t1.Services_Be_L2,t1.Services_Be
    FROM table1 t1 
Inner JOIN table2 t2 ON t1.SERVICES_BE = t2.SERVICES_BE

【讨论】:

    【解决方案2】:
    SELECT Services,Metric_Type,services_be,Services_Be_L2,Services_Be
    FROM table1
    JOIN table2
    ON table1.SERVICES_BE = table2.SERVICES_BE
    

    看起来像一个有效的连接,它允许您并排使用两个表中的列。您可能想要使用的一件事是表别名,以便更轻松地引用表,然后在“选择”列表中专门标识您的列来自的表,例如:

    SELECT t1.Services,t1.Metric_Type,t1.services_be,t2.Services_Be_L2,t2.Services_Be
        FROM table1 t1
        JOIN table2 t2
        ON t1.SERVICES_BE = t2.SERVICES_BE
    

    如果您想APPEND 将记录从一个表传输到另一个表,您将需要使用UNIONUNION ALL

    SELECT 
        Services_Be,
        SALES_NODE_LEVEL1,
        Fiscal QT,
        Fiscal YR
    FROM
        Table11
    
    UNION ALL
    
    SELECT 
        Services_Be,
        SALES_NODE_LEVEL1,
        Fiscal QT,
        Fiscal YR
    FROM
        Table12
    

    追加时,top table 和 bottom 之间的列定义和数据类型需要相同。 UNION ALL 将追加来自Table2 的每条记录,而UNION 将仅追加Table1 中尚不存在的记录(类似于DISTINCT)。

    【讨论】:

    • 即使我将 NULL 值插入为虚拟列,并且当我进行连接时,无论我在做什么类型的连接,联合都不起作用,我要么得到 Metric_type,要么只得到 Metric_type 的空值。
    • 您要追加数据吗?您使用的是 Union 还是 UNION ALL。如果 UNION,您可能需要处理 null 的次数,因为 null 没有按照您的想法进行比较。您是否遇到特定错误,您可以编辑问题并发布您尝试过的代码,以便我们直接查看它以提供反馈吗?
    猜你喜欢
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多