这个视图如何建?

zzroom 2004-10-14 05:37:16
操作系统:Win2000Server
数据库系统:SQLSERVER2000企业版

有两张表,都有id,name两列。表1的name是主键,表2的的name有重复值。
现要建一张视图,以 表1.name=表2.name 关联,但视图仍要以name作用主键,不能有重复值。
此视图如何建?
...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnodiew 2004-10-14
  • 打赏
  • 举报
回复
上贴中t3应是表2
如果a有多个字段>2,b有多个字段>2,上述各位group by后怎么查出其它字段呢?

create view 视图名
as
SELECT *
FROM 表1 a LEFT OUTER JOIN
(SELECT *
FROM 表2
WHERE id IN
(SELECT MAX(id)
FROM 表2
GROUP BY name)) b ON a.name = b.name
gnodiew 2004-10-14
  • 打赏
  • 举报
回复
如果a有多个字段>2,b有多个字段>2,上述各位group by后怎么查出其它字段呢?

create view 视图名
as
SELECT *
FROM 表1 a LEFT OUTER JOIN
(SELECT *
FROM 表2
WHERE id IN
(SELECT MAX(id)
FROM t3
GROUP BY name)) b ON a.name = b.name
pjy 2004-10-14
  • 打赏
  • 举报
回复
create view 视图名
as
select a_id=a.id,a_name=a.name,b_id,b.name
from 表1 a,(select Max(id),name from 表2 group by Name) b
where a.name=b.name
haoK 2004-10-14
  • 打赏
  • 举报
回复
对于表2里有重复的纪录以什么规则关联呢?

zjcxc 元老 2004-10-14
  • 打赏
  • 举报
回复
create view 视图名
as
select a_id=a.id,a_name=a.name
,b_id=max(b.id),b_name=b.name --表2的id保留最大值
from 表1 a,表2 b
where a.name=b.name
group by a.id,a.name,b.name
zjcxc 元老 2004-10-14
  • 打赏
  • 举报
回复
create view 视图名
as
select a_id=a.id,a_name=a.name
,b_id=min(b.id),b_name=b.name --表2的id保留最小值
from 表1 a,表2 b
where a.name=b.name
group by a.id,a.name,b.name
zzroom 2004-10-14
  • 打赏
  • 举报
回复
取 max(id)
zjcxc 元老 2004-10-14
  • 打赏
  • 举报
回复
那表2的id如何取舍?

34,590

社区成员

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

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