两张桌子:
employee
id name
1 steve
2 rob
3 bell
position
position_id employee_id position
1 e1 manager
2 e2 seller
3 e3 director
问题是外键的格式与主键不同。 如何使用sql查询获得结果?
name position
steve manager
rob seller
bell director
答案 0 :(得分:4)
你是说你位置表中的employee_id
总是以“e”为前缀吗?如果是这样,那么这应该使用CONCAT
:
select e.name, p.position
from employee e join position p
on p.employee_id = concat('e',e.id)
答案 1 :(得分:0)
CONCAT
函数会帮助您隐式转换数字ID并在前面添加“e”以匹配位置表中的employee_id。然后你可以进行散列连接以从两个表中获得结果
的 SQL FIDDLE DEMO 强>
select E.name,
P.position
from Employee E
inner join Positions P
on P.employee_id = concat('e',E.id)