Foxtable(狐表)用户栏目专家坐堂 → [求助] 有个SQL问题,希望路过的大神帮帮忙


  共有3090人关注过本帖树形打印复制链接

主题:[求助] 有个SQL问题,希望路过的大神帮帮忙

帅哥哟,离线,有人找我吗?
jiskin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
[求助] 有个SQL问题,希望路过的大神帮帮忙  发帖心情 Post By:2015/1/17 9:48:00 [只看该作者]

我有一张表A ,有父ID 和ID 两列来表示递归关系,

还有张表B,有一列表A的行号 AID(表A的_identify)

我想直接用SQL来选取:当表A中的行或者该行的子项不存在于表B

 

不知道该如何写了,求帮忙,非常感谢


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/17 9:52:00 [只看该作者]

是判断某一行? 还是整个表?

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2015/1/17 9:54:00 [只看该作者]

以下是引用Bin在2015-1-17 9:52:00的发言:
是判断某一行? 还是整个表?

 

BIN总 是整个表


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/17 10:00:00 [只看该作者]

select * fr om {表A} where _Identify not in (select AID fr om {表B})

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2015/1/17 10:08:00 [只看该作者]

以下是引用Bin在2015-1-17 10:00:00的发言:
select * fr om {表A} where _Identify not in (select AID fr om {表B})

 

BIN总 这样只是表示 _identify行不在表B而已

如果表A该行不存在于表B但该行存在的子项却存在于表B那也不用显示该行


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/17 10:12:00 [只看该作者]

"还有张表B,有一列表A的行号 AID(表A的_identify)"     你一开始这么说的. 现在又说一套.

你到底在说什么.我搞不懂


是不是想这样

select * fr om {表A} where ID not in (select AID fr om {表B})

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2015/1/17 10:20:00 [只看该作者]

以下是引用Bin在2015-1-17 10:12:00的发言:
"还有张表B,有一列表A的行号 AID(表A的_identify)"     你一开始这么说的. 现在又说一套.

你到底在说什么.我搞不懂


是不是想这样

select * fr om {表A} where ID not in (select AID fr om {表B})

 

表A

_identify    父ID  ID

1                       4

2                4     6

3                6     7

4                       8

5                       1

6                       2

7                2     9

 

表B

AID

2

4

 

 

那么我所需要的数据是表A这样的内容

_identify    父ID  ID

5                       1

6                       2

7                2     9

 

因为这些行包括这些行对应的子项都不存在于表B

[此贴子已经被作者于2015-1-17 10:21:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/17 10:25:00 [只看该作者]

做不到,得递归查找才可以. 数据量大的话效率会非常差,你应该更改设计思路.

 回到顶部