以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 有个SQL问题,希望路过的大神帮帮忙 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63259) |
-- 作者:jiskin -- 发布时间:2015/1/17 9:48:00 -- [求助] 有个SQL问题,希望路过的大神帮帮忙 我有一张表A ,有父ID 和ID 两列来表示递归关系, 还有张表B,有一列表A的行号 AID(表A的_identify) 我想直接用SQL来选取:当表A中的行或者该行的子项不存在于表B
不知道该如何写了,求帮忙,非常感谢 |
-- 作者:Bin -- 发布时间:2015/1/17 9:52:00 -- 是判断某一行? 还是整个表? |
-- 作者:jiskin -- 发布时间:2015/1/17 9:54:00 -- 以下是引用Bin在2015-1-17 9:52:00的发言:
是判断某一行? 还是整个表?
BIN总 是整个表 |
-- 作者:Bin -- 发布时间:2015/1/17 10:00:00 -- select * fr om {表A} where _Identify not in (select AID fr om {表B}) |
-- 作者:jiskin -- 发布时间: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 -- 发布时间: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 -- 发布时间: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 -- 发布时间:2015/1/17 10:25:00 -- 做不到,得递归查找才可以. 数据量大的话效率会非常差,你应该更改设计思路. |