首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有任何条件的SQL完全连接

没有任何条件的SQL完全连接
EN

Stack Overflow用户
提问于 2014-07-16 08:35:16
回答 4查看 24.4K关注 0票数 8

我正在使用MS。

我有以下表格:

代码语言:javascript
复制
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

我想得到这个:

代码语言:javascript
复制
    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:表不相关。

如果表是相关的:当预先知道哪个表大于哪个表时,我会使用左或右联接。但它是未知的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-10-19 20:02:31

试着做这样的事情:

代码语言:javascript
复制
SELECT *
FROM A
    FULL OUTER JOIN B ON 1 = 1
    FULL OUTER JOIN C ON 1 = 1
票数 4
EN

Stack Overflow用户

发布于 2014-07-16 08:44:18

使用row_number创建要用于完全连接的索引

代码语言:javascript
复制
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
票数 9
EN

Stack Overflow用户

发布于 2014-07-16 08:48:22

试试这个:

代码语言:javascript
复制
with a as
(select *, row_number() over (order by id1) an from tableA),
b as
(select *, row_number() over (order by id2) bn from tableB),
c as
(select *, row_number() over (order by id3) cn from tableC)

select a.id1, a.data1, b.id2, b.data2, c.id3, c.data3 
from a
full outer join b on a.an = b.bn
full outer join c on a.an = c.cn

SQL Fiddle

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24775975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档