首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将两个表中的值包含在同一列中

如何将两个表中的值包含在同一列中
EN

Stack Overflow用户
提问于 2019-02-22 05:53:48
回答 3查看 52关注 0票数 -2

我有以下疑问:

代码语言:javascript
复制
select
    t1.x,
    t2.y

from table1 t1
    join table2 t2
        on t1.x = t2.x

这将产生以下结果:

代码语言:javascript
复制
x   y1
x   y2
x   y3

但是,我希望它生成以下内容,其中来自t1.x的值也在第二列中:

代码语言:javascript
复制
x   x
x   y1
x   y2
x   y3

有什么简单的方法可以做到这一点吗?我正在尝试用PostgreSQL来实现这一点,但我也会对MySQL中的任何解决方案感兴趣。

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-22 06:03:00

你似乎想要:

代码语言:javascript
复制
select t1.x, t1.x as y
from table1 t1
union all
select t2.x, t2.y
from table2 t2;

仅当您希望根据两个表中的x过滤(或相乘)行时,才需要join

票数 1
EN

Stack Overflow用户

发布于 2019-02-22 06:05:44

我不确定这是不是你所需要的。但我怀疑您只需要对LEFT JOIN进行一些调整:

代码语言:javascript
复制
SELECT
    t1.x,
    COALESCE(t2.y, t1.x)
FROM table1 t1
LEFT JOIN table2 t2
ON t1.x = t2.x
票数 1
EN

Stack Overflow用户

发布于 2019-02-22 05:56:19

您可以使用UNION:

代码语言:javascript
复制
select
    x,
    x as y
from table1
union
select
    t1.x,
    t2.y
from table1 t1
    join table2 t2
on t1.x = t2.x
order by x

代码语言:javascript
复制
select
    t1.x,
    t1.x
from table1 t1
    join table2 t2
on t1.x = t2.x
union
select
    t1.x,
    t2.y
from table1 t1
    join table2 t2
on t1.x = t2.x
order by x 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54816798

复制
相关文章

相似问题

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