标题:鏈接表自已
只看楼主
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
结帖率:50%
 问题点数:0 回复次数:5 
鏈接表自已
begin
    if @Type='All'
        select  a.*,  b. MenuName as PMenuName from SysMenu a left join SysMenu b  on a.PMenuID=b.MenuID where a.Status='Y' order by cast(a.MenuID as int)
    else if @Type='Single'
        select  a.*,  b. MenuName as PMenuName from SysMenu a left join SysMenu b  on a.PMenuID=b.MenuID where a.MenuID=@FieldValue
    else
        select  a.*,  b. MenuName as PMenuName from SysMenu a left join SysMenu b  on a.PMenuID=b.MenuID where a.Status='Y' order by cast(a.MenuID as int)
end


加粗部份為何需要這樣來鏈接自已呢??在什麼情況下需要這樣鏈接查詢呢?
搜索更多相关主题的帖子: 鏈接 
2009-08-17 20:47
subMain
Rank: 5Rank: 5
等 级:职业侠客
帖 子:50
专家分:357
注 册:2009-8-17
得分:0 
第一个SQL语句和第三个SQL语句貌似一样啊。。

一表连接同一个表时,一般表明这个表中的数据有子父关系。
根据你SysMenu表举个例子。

SysMenu表中的数据
PMenuID    MenuID    MenuName
-----------------------------
000        101        文件
101        102        新建
101        103        打开
101        104        退出
102        105        窗口
000        206        编辑
206        207        剪切
206        208        复制
206        209        粘贴
102        110        发信息
000        301        收藏
301        302        添加到收藏夹

学习VB好多天
2009-08-17 22:54
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
得分:0 
還是有點沒有看明白是什麼意思!呵呵!

c sharp初学者
2009-08-18 08:46
subMain
Rank: 5Rank: 5
等 级:职业侠客
帖 子:50
专家分:357
注 册:2009-8-17
得分:0 
回复 3楼 rgbtdkjcel

按照上面的SQL语句中连接条件来考虑的话,应该是下面的情况:
别名a表中的数据
PMenuID    MenuID    MenuName
-----------------------------
101        102        新建
101        103        打开
101        104        退出
102        105        窗口
206        207        剪切
206        208        复制
206        209        粘贴
102        110        发信息
301        302        添加到收藏夹

别名b表中的数据
PMenuID    MenuID    MenuName
-----------------------------
000        101        文件
000        206        编辑
000        301        收藏

a表中的数据相当于子数据,b表中的数据相应于父数据。
a表中的数据用PMenuID来连接b表中数据的MenuID字段。
用这种方式来确定对应关系,不知LZ明白否?

学习VB好多天
2009-08-18 21:52
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
得分:0 
明白了。謝謝指導

c sharp初学者
2009-08-19 07:17
rgbtdkjcel
Rank: 1
等 级:新手上路
帖 子:294
专家分:0
注 册:2007-3-26
得分:0 

drop table shiyan
go
create table shiyan(id int)
insert into shiyan select 333
insert into shiyan select 333
insert into shiyan select 333
insert into shiyan select 333
insert into shiyan select 333
insert into shiyan select 333
select * from shiyan
declare @id int
update shiyan set @id=isnull(@id,id),id=@id-100,@id=@id+100
 
subMain上面語句中。後面的update語句是如何理解呢?》我知道是更新表中的數據,,但是。set後面的語句就不明白是什麼意思啦!
 

c sharp初学者
2009-08-19 07:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283047-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.226966 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved