sql 两表 一对多查询问题
有一个记录员工的表a有一个记录员工业绩的表b一个员工会有多条业绩记录请问怎么取出某员工的所有业绩信息回答者模拟几个字段说明意思即可!...
有一个记录员工的表a 有一个记录员工业绩的表b
一个员工会有多条业绩记录 请问怎么取出某员工的所有业绩信息
回答者模拟几个字段说明意思即可! 展开
一个员工会有多条业绩记录 请问怎么取出某员工的所有业绩信息
回答者模拟几个字段说明意思即可! 展开
4个回答
展开全部
这应该是一个1对多的映射关系
1个员工可以对应多条业绩记录
那么可以设员工表的主键是员工id,并且作为业绩表的外键。
比如业绩表叫做achievement_table员工id对应的列为employee_id
比如员工表叫做employee_table 主键id为员工id,以及表中有列employee_name 表示员工名字
可以 select * from employee_table as a,achievement_table as b where a.id = b.emplyee_id and b.emplyee_name = '员工姓名'
这样就完成了通过员工姓名 取得对应业绩记录的查询,这个查询是联合查询,效率高于嵌套子查询,希望帮到你。
1个员工可以对应多条业绩记录
那么可以设员工表的主键是员工id,并且作为业绩表的外键。
比如业绩表叫做achievement_table员工id对应的列为employee_id
比如员工表叫做employee_table 主键id为员工id,以及表中有列employee_name 表示员工名字
可以 select * from employee_table as a,achievement_table as b where a.id = b.emplyee_id and b.emplyee_name = '员工姓名'
这样就完成了通过员工姓名 取得对应业绩记录的查询,这个查询是联合查询,效率高于嵌套子查询,希望帮到你。
展开全部
你的表b里应该有一个员工编号或者姓名之类的字段吧
那就直接从表b里查询就行
select employeeID, score from tableB where employeeID=12345
select employeename, score from tableB where employeename='aaaaa'
那就直接从表b里查询就行
select employeeID, score from tableB where employeeID=12345
select employeename, score from tableB where employeename='aaaaa'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为了消除数据冗余,所以才将数据做成两张表存放的形式,所以B表里面肯定有员工编号的字段
select a.员工编号,...from a left join b on a.员工编号=b.员工编号
where a.员工编号=‘’
这样就能把某个员工的业绩都列出了。
select a.员工编号,...from a left join b on a.员工编号=b.员工编号
where a.员工编号=‘’
这样就能把某个员工的业绩都列出了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用链表查询
select a.你要的列,b.列 from a inner join b on(a.与b表有关系的列=b.与a表有关系的列)
select a.你要的列,b.列 from a inner join b on(a.与b表有关系的列=b.与a表有关系的列)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询