问题是要写一个SQL查询来连接这两个表。
T1
X栏
T2
Y栏
将这两张表连接起来,得到的结果是这样的格式。
第1列 第2列
如果我做左联接,我将得到额外的行,如果我做分立,那么我将得到更少的行,因为它将消除重复的行。
请指导我如何处理这个问题。
一种方法是将两张表中的记录进行排序,并使用 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中可用。