加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

数据库 – 在mySQL中,是否可以从两个表中进行SELECT并合并列?

发布时间:2020-05-28 18:28:15 所属栏目:MsSql 来源:互联网
导读:如果我在 mysql中有两个具有相似列的表… TABLEA id name somefield1TABLEB id name somefield1 somefield2 如何构造SELECT语句,以便我可以同时从两个表中进行SELECT,并将结果集合并为相同的列? 所以,例如,我希望做一些像…… SELECT name, somefield1 FROM

如果我在 mysql中有两个具有相似列的表…

TABLEA
  id
  name
  somefield1

TABLEB 
  id
  name
  somefield1
  somefield2

如何构造SELECT语句,以便我可以同时从两个表中进行SELECT,并将结果集合并为相同的列?

所以,例如,我希望做一些像……

SELECT name,somefield1 FROM TABLEA,TABLEB WHERE name="mooseburgers";

…并且具有名称,并且两个表中的somefield1列在结果集中合并在一起.

谢谢您的帮助!

附加样本输出因为问题不清楚:

我希望table1中的行和table2中的行附加在结果集中.例如,如果表包含

TABLEA
id(1) name(zoot) somefield(suit)

TABLEB
id(1) name(zoot) somefield(flute)

The resultet would look like:

name     |     somefield1
zoot           suit
zoot           flute

解决方法

您可以使用(id,name)作为加入条件,将两个表中的列组合在一起:
select
    a.id                               as id,a.name                             as name,a.somefield1 || ' ' || b.somefied1 as somefield1
from tablea a,tableb b
where a.id   = b.id
  and a.name = b.name
  and b.name = 'mooseburgers';

如果您只想加入(id)并组合名称和somefield1列:

select
    a.id                               as id,a.name || ' ' || b.name            as name,tableb b
where a.id   = b.id
  and b.name = 'mooseburgers';

虽然我不得不承认这是一种相当不寻常的做事方式.我假设你有你的理由:-)

如果我误解了你的问题并且你只想要两个表的更传统的联合,那么使用类似的东西:

select id,name,somefield1,'' as somefield2 from tablea where name = 'mooseburgers'
union all
select id,somefield2 from tableb where name = 'mooseburgers'

这不会合并行,而只会附加两个查询中的行.如果要删除重复行,请单独使用union,但如果您确定没有重复项或者您不希望删除它们,则union all通常更有效.

根据您的编辑,实际查询将是:

select name,somefield1 from tablea where name = 'zoot'
union all
select name,somefield1 from tableb where name = 'zoot'

(或者如果你不想要重复,其中a.name == b.name ==’zoot’和a.somefield1 == b.somefield1).

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读