sql语句模糊查询返回结果再查的问题

只有一个表,结构如下:ID编码名称11一类名称211二类名称3111三类名称41111项目名称51112项目名称61113....72....821....9211...... 只有一个表,结构如下:
ID 编码 名称
1 1 一类名称
2 11 二类名称
3 111 三类名称
4 1111 项目名称
5 1112 项目名称
6 1113 ....
7 2 ....
8 21 ....
9 211.....
父项编码总等于它编码的前1/2/4/6位
使用LIKE模糊查询项目名称的同时,返回它的所有父项
像这样:
1 第一类
11 第二类
111 第三类
1111 符合like的项

我试图使用 select * from 表名 where 编码=left(select 编码 from 表名 where 名称 link '%关键字%',1) or ...left(,2)...left(,4)....left(,6) 这样的查询,返回错误
应该如何做?
展开
 我来答
百度网友7b633ce
2011-10-18 · TA获得超过593个赞
知道大有可为答主
回答量:653
采纳率:0%
帮助的人:743万
展开全部
查询结果数目大于一时,其左边不能用等号:
select * from 表名 as a where exists(select 编码 from 表名 where 名称 like '*关键字*' and (left(编码,1)=a.编码 or left(编码,2)=a.编码 or left(编码,4)=a.编码 or left(编码,6)=a.编码) )
如果是在access里写的话,通配符用 * ,如果是在程序里写的话,通配符还是%(数据库引擎会自动把%转为*)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落月Prc
2011-10-18 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2397万
展开全部
select a.* from 表名 a,(select * from 表名 where 名称 link '%关键字%') b on a.编码=b.编码 where a.编码=left(b.编码,1) or a.编码=left(b.编码,2) or a.编码=left(b.编码,4) or a.编码=left(b.编码,6)
--像上面这样,用联合查询即可。
更多追问追答
追问
我试了一下,提示语法错误,怎么回事,我是VB+MDB环境
追答
MDB里的通配符应该用*而不是%,你改一下。
还有提示语法错误,看看是提示的哪里?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牵笑仁腾逸
2019-12-08 · TA获得超过1005个赞
知道小有建树答主
回答量:1239
采纳率:100%
帮助的人:5.3万
展开全部
任何一个查询结果都可以当成一张表
再次查询
比如我的sql语句是
select * from person where age>10 --大于10岁我们可以对这个结果再次查询如下
select b.* from (select * from person where age>10) b where b.sex='男' --大于10岁的男性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式