SQL全连接无任何条件

标签 sql sql-server tsql

我正在使用 MS SQL。
我有下表:

table A:
    id1   data1
    8234    ko
    2       po
    333     koo
    40      woo

table B:
    id2     data2
    123     meow
    654     frrr

table C:
    id3     data3
    10          a
    20          b
    30          c
    40          d
    50          e   
    60          f

我想得到这个:

    id1     data1       id2     data2       id3     data3
    8234    ko          123      meow        10         a
    2       po          654      frrr        20         b
    333     koo         NULL     NULL        30         c
    40      woo         NULL     NULL        40         d
    NULL    NULL        NULL     NULL        50         e
    NULL    NULL        NULL     NULL        60         f

这似乎是没有任何条件的表格的全部总和。我只想按原样获取所有表中的所有列和所有数据。
我该怎么做? UPD:表不相关。
如果表相关:当事先知道哪个表大于时,我会使用左连接或右连接。但具体情况未知。

最佳答案

使用 row_number 创建索引以用于完整联接

select * from (
    select 
        row_number() over (order by id1 asc) rn,
        id1, data1
    from ta
) t1    
full join (
    select 
        row_number() over (order by id2 asc) rn,
        id2, data2
    from tb
) t2 on t1.rn = t2.rn
full join (
    select 
        row_number() over (order by id3 asc) rn,
        id3, data3
    from tc
) t3 on t1.rn = t3.rn

关于SQL全连接无任何条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24775975/

相关文章:

sql - 将 linq 语句转换为 sql

php - 选择与特定值匹配的所有列,该值可以为空

SQL SELECT 整行,一列中有重复数据

database - SQL Server 2005 - T-SQL - 如何生成 int ID?

sql-server - 接受多个 Id 值的 T-SQL 存储过程

c# - 两个带有链接字段的插入查询

SQL:如果不存在如何更新或插入?

sql-server - 为什么在 SQL Server CLR 中运行的一个函数可能会导致崩溃,而在独立应用程序中运行正常?

sql-server - 登录 azure sql 数据库

sql-server - 在 VS 2013 中使用 SQL Server 数据库项目有哪些优势?