求一SQL语句

clmilan 2006-04-11 09:00:24
我有两个表A,B,分别为:
A:ID,NAME,SEX
B:ID,BIRTH
在这两个表中,A没有主键,就是允许,有多个相同的ID,而B设ID为主键,两个表中的ID是相关联的
我现在想通过生成一个视图的方式,显现如下结果:
ID,NAME,SEX,BIRTH(ID不允许有相同出现)
...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
clmilan 2006-04-11
  • 打赏
  • 举报
回复
哦~是我数据库设计有问题~
谢谢楼上的各位..
liangpei2008 2006-04-11
  • 打赏
  • 举报
回复
表A与表B之间的关系是不是主从表关系,如果是的话应先将表A的数据汇总在一起,形成唯一记录再与表B形成内联关系,即可实现!是不是这样呢?
sujinlin 2006-04-11
  • 打赏
  • 举报
回复
你A表中ID重复NAME不重复的如何获取???

真不知道你为什么这么设计表。
xeqtr1982 2006-04-11
  • 打赏
  • 举报
回复
set nocount on
create table tb([ID] int,[NAME] varchar(10),SEX varchar(10))
insert into tb select 1,'ss','男'
insert into tb select 1,'xx','男'
insert into tb select 2,'dd','女'
go

create table tt([ID] int,BIRTH varchar(20))
insert into tt select 1,'2004-01-01'
insert into tt select 2,'2005-01-01'
go

create view aa
as

select a.[ID],b.[NAME],b.[SEX],a.[BIRTH] from tt a,tb b where a.[ID]=b.[ID]
go


select * from aa

drop view aa
drop table tb
drop table tt
yuweiwei 2006-04-11
  • 打赏
  • 举报
回复
select B.* ,name,sex from B left join A on B.ID=A.ID
sxdoujg 2006-04-11
  • 打赏
  • 举报
回复
create view test as
select a.id,a.name,a.sex,b.BIRTH
from a,b
where a.id=b.id
JonasFeng 2006-04-11
  • 打赏
  • 举报
回复
不能重复,那如果你第一个表中有重复字段怎么办,难道舍弃?这样设计表有问题!
GGL123 2006-04-11
  • 打赏
  • 举报
回复
有问题!
junhao_666 2006-04-11
  • 打赏
  • 举报
回复
可以将名字和性别都分别放到一字段里,查出来啊
create table tb([ID] int,[NAME] varchar(10),SEX varchar(10))
insert into tb select 1,'ss','男'
insert into tb select 1,'xx','男'
insert into tb select 2,'dd','女'
insert into tb select 1,'ds','男'
insert into tb select 1,'ee','男'
insert into tb select 2,'dd','女'
insert into tb select 2,'eu','男'
insert into tb select 3,'ew','男'
go

create table tt([ID] int,BIRTH varchar(20))
insert into tt select 1,'2004-01-01'
insert into tt select 2,'2005-01-01'
insert into tt select 3,'2004-01-01'
insert into tt select 4,'2005-01-01'
go

select * from tb group by id,name,sex
select * from tt

select id,dbo.aaa(id) as name,dbo.bbb(id) as sex,birth from tt group by id,birth

drop table tb
drop table tt

create function aaa(@id int)
returns varchar(1000)
as
begin
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+','+name from tb where id=@id
set @sql=stuff(@sql,1,1,'')
return @sql
end

create function bbb(@id int)
returns varchar(1000)
as
begin
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+','+sex from tb where id=@id
set @sql=stuff(@sql,1,1,'')
return @sql
end

结果:
--------------------------------
1 ss,xx,ds,ee 男,男,男,男 2004-01-01
2 dd,dd,eu 女,女,男 2005-01-01
3 ew 男 2004-01-01
4 NULL NULL 2005-01-01

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧