输出以一定格式连接两张表的数据[关闭]。

问题描述 投票:0回答:1

问题是要写一个SQL查询来连接这两个表。

T1

X栏

  • A
  • A
  • A
  • B
  • B

T2

Y栏

  • A
  • A
  • B

将这两张表连接起来,得到的结果是这样的格式。

第1列 第2列

  • A A
  • A A
  • A NULL
  • B B
  • B NULL

如果我做左联接,我将得到额外的行,如果我做分立,那么我将得到更少的行,因为它将消除重复的行。

请指导我如何处理这个问题。

mysql sql join left-join
1个回答
1
投票

一种方法是将两张表中的记录进行排序,并使用 row_number(),然后使用这些信息来连接表。

select t1.x, t2.y
from (select x, row_number() over(partition by x order by x) rn from t1) t1
left join (select y, row_number() over(partition by y order by y) rn from t2) t2 
    on t2.y = t1.x and t2.rn = t1.rn

注意: 窗口函数 row_number() 仅在MySQL 8.0中可用。

© www.soinside.com 2019 - 2024. All rights reserved.