数据库 – 在mySQL中,是否可以从两个表中进行SELECT并合并列?
发布时间:2020-12-12 06:25:58 所属栏目:MsSql教程 来源:网络整理
导读:如果我在 mysql中有两个具有相似列的表… TABLEA id name somefield1TABLEB id name somefield1 somefield2 如何构造SELECT语句,以便我可以同时从两个表中进行SELECT,并将结果集合并为相同的列? 所以,例如,我希望做一些像…… SELECT name,somefield1 FROM T
如果我在
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). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Redis教程(十三):管线详解
- sqlserver服务器改名问题
- mysql Non-Transactional Database Only(只支持MyISAM)
- SQL Server Procedure赋予权限的问题解析
- Microsoft SQL Server 2008安装图解教程(Windows 7)
- sql-server – 在日志表上不断增加的datetime列集群索引?
- SqlServer 执行计划及Sql查询优化初探
- sql-server – 如何获取美国邮政(zip)代码的边界坐标?
- sql – 如何选择所有列,加上oracle 11g中的CASE语句的结果?
- sql – 缓慢查询“UNION ALL”视图