导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

一个存储过程!高分

moxing99 2003-01-20 04:26:27
use pubs
if exists (select name from sysobjects
where name='author_infor' and type='p')
drop procedure author_infor /*当if语句成功执行了的话,就放弃执行下面的存储过程*/
go

create procedure author_infor as
select au_lname,au_fname,title,pub_name
from authors a inner join titleauthor ta
on a.au_id=ta.auid inner join titles t
on t.title_id=ta.title_id inner join publishers p
on t.pub_id=p.pub_id
go

有三个问题,一个是我写的注释对不对?
二个是我始终没有看懂 a inner join titleauthor是什么意思?ta和t还有p三个单独的字母又是什么意思?谢谢高手指点,一个学习中的菜鸟!
三个是authors a 它的意思是不是把这个表名简写成用a来代替呀?
...全文
4 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yvqq 2003-01-21
up
回复
cjf0426 2003-01-21
to : moxing99(阿水) 是publishers的别名
to :moxing99(阿水)
JOIN的类型有几种:LEFT,RIGHT,FULL OUTER,INNER和CROSS。
你所使用的类型是由你想要看到的结果所决定的。
例如,使用LEFT OUTER JOIN将会从列出的第一个表格中返回所有有关的行,而同时如果没有信息与第一个表格相关的话将潜在地从所列出的第二个表格中加入行。

inner JOIN将只返回那些在两个表格中都有数据的行。

回复
moxing99 2003-01-21
还有请老衲还有大力哥注意了!我刚刚看了半天inner join的解释还是没有看明白,你们能说通俗点介绍介绍吗?
回复
moxing99 2003-01-21
p难道不是publishers这个表的别名吗?请问!??
回复
蓝天 2003-01-21
注释有问题:
1,应该写在前面
2,理解不对

/*当if语句成功执行了的话,(就是原来有同名的存储过程),就drop掉这个同名的存储过程*/

use pubs
if exists (select name from sysobjects
where name='author_infor' and type='p')
drop procedure author_infor
go
回复
liaolwj 2003-01-21
网上有sql的中文帮助的
回复
叶子哟 2003-01-21
网上搜一下,有很多资料的,关于sql的操作,别名而已,不是简单的简称
回复
zhangna 2003-01-21
cjf0426(cjf0426)把联机丛书里面的东西抄下来了,作者你怎么不知道去看看呢?
回复
leepoy 2003-01-20
nod
回复
cjf0426 2003-01-20
补充2
Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。
回复
nielisheng 2003-01-20
nod
回复
CrazyFor 2003-01-20
1,对,单行也可以用 --
2,ta,t都是给表的别名,简化书写,P表明类型,即存储过程。
3,是的。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告