首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两个表中选择列

从两个表中选择列
EN

Stack Overflow用户
提问于 2019-04-27 17:50:06
回答 2查看 62关注 0票数 0

表A:

助力型

10 .再分摊费用a

10 .

10 .

11 .再发成本

11 .再贴水制

第11次再保险合约

表B

投标名称

10 .再接再税ab

10 .B/C.

10 .再发光盘

11 .中转站

11 .

11 ._

结果应该是

援助类型名称

10

10

10

11 .初级商业银行-商业银行

11

11

您能帮我做一下SQL查询吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-27 17:53:33

您正在尝试对齐两个表,但没有键。您可以使用row_number()生成密钥,然后进行匹配。请注意,除非有另一列指定排序,否则不能控制两个表中的哪些值匹配。

所以:

代码语言:javascript
复制
select a.id, a.name, b.name
from (select a.*, row_number() over (partition by aid order by name) as seqnum
      from a
     ) a join
     (select b.*, row_number() over (partition by bid order by name) as seqnum
      from b
     ) b
     on a.aid = b.bid and a.seqnum = b.seqnum;
票数 2
EN

Stack Overflow用户

发布于 2019-04-27 17:56:43

您可以通过这样的连接来完成它:

代码语言:javascript
复制
select a.aid, a.type, b.name
from TableA a inner join TableB b
on b.bid = a.aid and b.name like concat(a.type, '%')

这将为您提供TableA中的6行,nameTableB作为3d列。

演示

结果:

代码语言:javascript
复制
| aid | type | name |
| --- | ---- | ---- |
| 10  | a    | ab   |
| 10  | b    | bc   |
| 10  | c    | cd   |
| 11  | abc  | abcd |
| 11  | bcd  | bcde |
| 11  | cde  | cdef |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55883305

复制
相关文章

相似问题

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