JOIN ON 条件与公共列作为字段串联

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

我想加入,但我没有共同的专栏。

我唯一的关系是表 B 中的一列与表 A 中的 2 列的串联:

表A:

id 名字 姓名
1 麦克克莱因
2 马克 约翰逊

表B:

完整名称 儿子名字
乔·麦克莱因 迈克
乔·麦克莱因 理查德
马克·约翰逊 彼得
乔·麦克莱因 帕特里克

我想得到:

id 完整名称 儿子名字
1 乔·麦克莱因 迈克
1 乔·麦克莱因 理查德
2 马克·约翰逊 彼得
1 乔·麦克莱因 帕特里克

我想:

SELECT a.id, b.completeName, b.sonName FROM tableA AS a JOIN tableB AS b ON b.completeName = CONCAT(a.name, ' ', a.surename)

但是在具有大量寄存器的“真实表”中(示例中没有这个)我收到“时间到期错误”。有什么建议吗?

谢谢!

sql join concatenation field multiple-columns
1个回答
0
投票

在表A中添加新的索引列(姓名+姓氏),使用查询填充该列以查找现有记录,然后使用该列与表B进行匹配。

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