select p.name as persons_name, c.name as country_name, c.country_code, p.phone_number
FROM person p
left join country c on c.country_code = cast(substring(p.phone_number,1,3) AS UNSIGNED);
Moncef Morocco 212 212-1234567
Maroua Morocco 212 212-6543214
Jonathan Peru 51 051-1234567
Meir Israel 972 972-1234567
Rachael Israel 972 972-0011100
1条答案
按热度按时间j8ag8udp1#
您的主要问题是您试图将2个字符代码(如
51
)与3个字符代码(如051
)等同起来我将用子字符串()挑出电话号码的前3个字符,并将它们转换为整数,以便像这样进行比较,然后测试一侧的前导零将被删除
另外,由于在两个表中都有一个名为
name
的列,因此我将专门挑选出希望在结果中使用的实际列,并给它们取别名