关于sql server中的视图(100分),急.......

j_xuhome 2001-12-10 09:56:51
A表:
id int
cd_no int
name string
....
B表:
cd_no int
id int
pic_name string
....
建立视图
SELECT dbo.A.*, dbo.B.pic_name AS pic_name
FROM dbo.A INNER JOIN
dbo.B ON dbo.A.id = dbo.B.id
但现在存在这样一个问题:在系统中B表若达到一定数据,就把B表中一部分数据导出为文件存于它处(并从B表删掉)。
比如: A.id= 5的记录存在,而B.id= 5的记录已导出, 则视图就找不出A.id= 5的记录了。
我的问题是: 怎样改写视图,既能保证原先的功能不变,而B.id= 5的记录,pic_name字段能输出空串?
...全文
162 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
nononono 2001-12-10
  • 打赏
  • 举报
回复
是.
左连接是保证选出左边表的记录的, 如果没有右边表对应的记录, 则右边表的字段值为NULL.
sp_2000 2001-12-10
  • 打赏
  • 举报
回复
tonononono(null,null) 
我问一个问题,如果b 表中根本就没有id=5这条记录(注意不是因为倒出去了),那你的视图不是把a 表中的id=5的记录也显示出来了吗。
sp_2000 2001-12-10
  • 打赏
  • 举报
回复
这帖子也跟的太快了,哈哈
nononono 2001-12-10
  • 打赏
  • 举报
回复
j_xuhome(臭名招著的程序员), Haiwer(海阔天空)写的也对呀.
sp_2000 2001-12-10
  • 打赏
  • 举报
回复
楼上的方法我觉得并不能解决问题,而视图是根据表动态变化的,表变了视图当然会跟着变,我觉得视图不能完成你所说的功能,估计得建个新表来存储数据,如果各位有更好的办法,请速告之。
j_xuhome 2001-12-10
  • 打赏
  • 举报
回复
to nononono(null,null):
可行。给分
thanks Haiwer too!
nononono 2001-12-10
  • 打赏
  • 举报
回复
b.id= 5的记录已导出 == b.id= 5的记录从B表删掉

是吧? 如果是, 结果是你想的那样.

昵称被占用了 2001-12-10
  • 打赏
  • 举报
回复
呵呵,你先试了再说好吗?!

好象和你说的正好一样!!
nononono 2001-12-10
  • 打赏
  • 举报
回复
我上面的跟贴晚了, 本来是跟Haiwer的第一个贴.
nononono 2001-12-10
  • 打赏
  • 举报
回复
如Haiwer的用外连接即可, 以下相同:
SELECT dbo.A.*, isnull(dbo.B.pic_name,'') AS pic_name
FROM dbo.A LEFT OUTER JOIN
dbo.B ON dbo.A.id = dbo.B.id

j_xuhome 2001-12-10
  • 打赏
  • 举报
回复
to Haiwer(海阔天空):
不知你是否懂我的意思。如果b.id= 5的记录已导出的话还是不能输出A.id= 5的记录,而我的要求是输出如下:
A.id A.XXX1 A.XXX2 B.pic_name
1 ..... ...... 'a1bw222'
1 ..... ...... 'aadsfas'
1 ..... ...... 'bafdaas'
5 ..... ...... ''

OK?
昵称被占用了 2001-12-10
  • 打赏
  • 举报
回复
呵呵,该一下:
SELECT dbo.A.*, isnull(dbo.B.pic_name,'') AS pic_name
FROM dbo.A ,dbo.B
where dbo.A.id *= dbo.B.id


昵称被占用了 2001-12-10
  • 打赏
  • 举报
回复
SELECT dbo.A.*, dbo.B.pic_name AS pic_name
FROM dbo.A ,dbo.B
where dbo.A.id *= dbo.B.id

j_xuhome 2001-12-10
  • 打赏
  • 举报
回复
问题一解决马上100分相送
相关推荐
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2001-12-10 09:56
社区公告
暂无公告