【问题标题】:Select data from multiple table without join sql从多个表中选择数据而不连接sql
【发布时间】:2018-04-30 15:12:02
【问题描述】:

我有2个SQL表。表A和表B。这两个表分别有10000条记录。

在表 A 中有 3 列=>

A列,B列,C列

在表 B 中有 3 列=>

D列、E列、F列

我的要求是选择 ColumnA 和 ColumnD 及其原始记录(10000)。

我的问题是如何只选择 ColumnA 和 ColumnD。

第一个问题是我不能加入这两个表,因为这两个表是分开的。

第二个问题是我不能合并这两个表,因为我的要求是得到两列,但是当我合并时,我只得到一列并结合了两列。

【问题讨论】:

    标签: sql-server-2012


    【解决方案1】:

    您可以通过ROW_NUMBER 创建一个即时加入列,然后加入该列:

    WITH cte1 AS (
        SELECT ColumnA, ROW_NUMBER() OVER (ORDER BY ColumnA) rn
        FROM TableA
    ),
    cte2 AS (
        SELECT ColumnD, ROW_NUMBER() OVER (ORDER BY ColumnD) rn
        FROM TableB
    )
    
    SELECT t1.ColumnA, t2.ColumnD
    FROM cte t1
    INNER JOIN cte t2
        ON t1.rn = t2.rn;
    

    当然,这只是使用 A 和 D 列中的任意顺序对 10K 记录进行配对。如果您对这两列应该如何配对有一些特定的逻辑,请告诉我们。最重要的是,您不能轻易摆脱 join 或 union 的概念来将这两列放在一起。

    【讨论】:

    • 感谢您的意见,尽管您的回答是我要求的 100%,但经过少许修改,我得到了结果,因为您的意见。所以我会将此标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2013-06-30
    • 2021-02-06
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    相关资源
    最近更新 更多