比如表(m)中有姓名(m.xm),年龄(m.nx),学历(m.xl),
表(k)中姓名(k.xm)选自表(m)姓名(m.xm),
当表(k)选择人员时,如何根据姓名关联,将表(m)中年龄学历带入到表K相应字段中
请问此存储过程如何去写
需要确认你的具体需求如何。
你是否是表k里也有k.nx这个字段,然后要将m.nx里的年龄按照相同的姓名填写进去?
如果是这个,那么可以参考下面的存储过程创建
CREATE PROCEDURE [dbo].[Bind_M_K]
AS
BEGIN
-- 声明对应m表里的字段的四个变量:id,xm,nx,xl
declare @id int,@xm varchar(50),@nx varchar(50),@xl varchar(50);
-- 声明m表的游标以用于遍历表用
declare m_cursor cursor for select * from m;
--打开游标
open m_cursor
--开启游标获取字段内容填充入id,xm,nx,xl四个变量中,当游标未执行到表尾则执行更新
fetch next from m_cursor into @id,@xm,@nx,@xl
while @@FETCH_STATUS = 0 --只要游标未到表尾则继续循环执行
begin
update k set nx=@nx where xm=@xm --将变量中的对应值按条件更新到K表中
fetch next from m_cursor into @id,@xm,@nx,@xl --移动游标到下一行并获取数据
end
close m_cursor
deallocate m_cursor
END
如果仅仅是在前端页面上的关联显示,就正常的多表查询按m.xm=k.xm就能查了。
此问题应该不用上升到写存储过程的地步,可以一个sql就处理掉,具体的可以使用left join进行数据的关联输出:
select k.xm,m.nx,m.xl from k k left join m m on k.xm = m.xm