有两个表一个是人员表user,一个是信息表info
user表 info表
id 姓名 性别 id 姓名 信息
1 张三 男 1 张三 信息一
2 李四 女 2 张三 信息二
3 王五 男 3 李四 信息三
4 张三 信息四
5 李四 信息五两个表的关联字段是姓名
希望的结果是
张三 男 信息一
李四 女 信息三
王五 男 空
user表 info表
id 姓名 性别 id 姓名 信息
1 张三 男 1 张三 信息一
2 李四 女 2 张三 信息二
3 王五 男 3 李四 信息三
4 张三 信息四
5 李四 信息五两个表的关联字段是姓名
希望的结果是
张三 男 信息一
李四 女 信息三
王五 男 空
解决方案 »
- 一个简单的SQL查询语句
- bcp 或bulk insert一个从unix上来的文本时,如何设置换行符??
- sqlserver 的 insert 问题 [简单级别]
- 求一工具
- SQL2008 无法连接到XXX error 40 MS SQL 错误2
- 我在数据库中创建了一个用户,可是现在怎么删除不了,告诉我:因为删除的用户拥有对象,不能删除???郁闷。。。。
- SQL父子表插入问题。
- 小弟初学数据库,请各位给指点!
- 请问如何取得sql server中表的字段说明????
- SQL SERVER2000如何在A数据库中访问B数据库的表
- 这里调用存储过程 语法错误在那啊
- 一个分组查询问题!!!sql server2000的
id 姓名 性别
1 张三 男
2 李四 女
3 王五 男
info表
id 姓名 信息
1 张三 信息一
2 张三 信息二
3 李四 信息三
4 张三 信息四
5 李四 信息五
from [user] m left join info n on m.姓名 = n.姓名
select m.姓名 ,m.性别 ,isnull(n.信息,'空') 信息
from [user] m left join info n on m.姓名 = n.姓名如果是后面的:
select m.姓名 ,m.性别, isnull((select top 1 信息 from info n where n.姓名 = m.姓名 order by id),'空') from [user] m
insert into [user] values(1 ,'张三', '男')
insert into [user] values(2 ,'李四', '女')
insert into [user] values(3 ,'王五', '男')
create table info(id int,姓名 varchar(10),信息 varchar(10))
insert into info values(1, '张三', '信息一')
insert into info values(2, '张三', '信息二')
insert into info values(3, '李四', '信息三')
insert into info values(4, '张三', '信息四')
insert into info values(5, '李四', '信息五')
goselect m.姓名 ,m.性别, 信息 = isnull((select top 1 信息 from info n where n.姓名 = m.姓名 order by id),'空') from [user] mdrop table [user] , info/*
姓名 性别 信息
---------- ---------- ----------
张三 男 信息一
李四 女 信息三
王五 男 空(所影响的行数为 3 行)
*/
insert into [user] values(1 ,'张三', '男')
insert into [user] values(2 ,'李四', '女')
insert into [user] values(3 ,'王五', '男')
create table info(id int,姓名 varchar(10),信息 varchar(10))
insert into info values(1, '张三', '信息一')
insert into info values(2, '张三', '信息二')
insert into info values(3, '李四', '信息三')
insert into info values(4, '张三', '信息四')
insert into info values(5, '李四', '信息五')
go
select a.姓名,b.信息
from [user] a
outer apply(select top 1 信息 from info where a.姓名=姓名) b
/*
姓名 信息
---------- ----------
张三 信息一
李四 信息三
王五 NULL(3 行受影响)
*/用老D的表