mysql - 连接两个具有不同格式的主键和外键的表

标签 mysql sql foreign-keys primary-key

两个表:

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

最佳答案

您是说您的职位表中的 employee_id 总是以“e”为前缀吗?如果是这样,那么使用 CONCAT 应该可以工作:

select e.name, p.position
from employee e join position p
on p.employee_id = concat('e',e.id)

SQL Fiddle Demo

关于mysql - 连接两个具有不同格式的主键和外键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709199/

相关文章:

mysql - php 数组相似搜索

php - 让 SQL 从嵌套数组中选择

mysql - 子查询的优化

sql - 通过执行变量中的语句从存储过程中获取SQLCODE和SQLSTATE

php - 将数据插入到具有外键字段的php表中

database - Oracle 中的约束/外键信息

mysql - ERROR 1064 : is there a mysql create table to insert a foreign key? 我收到语法错误

sql - 插入组合(值和选择)

sql - CASCADE 多对多自引用表中的删除

MySQL - 比较两个表并生成差异 SQL 文件