100分,只求一句sql查询语句

mysite365 2009-04-30 03:26:32
表A ID key gid time top
1 22 3 2009-4-30 10
2 55 5 2009-2-30 11
3 33 3 2008-5-8 99
4 25 9 2006-5-6 100
5 22 4 2003-5-20 20

表B ID keys xx xx1
1 221
2 789
3 222
4 622
5 223
6 745
数据库为access,输出为表B中的内容

表A.gid=表B.id

关键字与表A完全匹配 表B模糊匹配

首先: 从表A和表B中查找关键字"22” ,当表A中存在"22”时候
把表B中对应id的信息排在上面(表a中top值高的排在前面)

这里显示的结果为

第一行 id为4的信息
第二行 id为3的信息
第三行 id为1的信息
第四行 id为5的信息

...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
把自己问题描述清楚
mysite365 2009-04-30
  • 打赏
  • 举报
回复
select * from b left join a on a.gid=b.id and key='22' where b.keys='%22%' order by a.top desc
mysite365 2009-04-30
  • 打赏
  • 举报
回复
select * from b left join a on a.gid=b.id and key='"%22%"' where b.keys='%"&22&"%' order by a.top desc
hanyee07 2009-04-30
  • 打赏
  • 举报
回复
按照你说的意思,大概是这样吧:
select B.* from B join B on(B.[id]=A.gid) where B.Keys like '%22%' And A.[key]='22' order by A.[top] desc

希望可以帮得到你。
xiaojing7 2009-04-30
  • 打赏
  • 举报
回复
select * from b where a.id in( select id from a where a.key like '%22%' order by a.top)
---------------------
不太明白,不知道是否合适
mysite365 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuxiaoyi666 的回复:]
select b.id from a.gid=b.id where a.key like '%22%' or b.keys like '%22%' order by a.top
[/Quote]
感觉有些问题

输出为表B中的内容

表B中有KEYS内容,现在我们要从表B.keys中要包含“22”的记录,把找到的记录的id号
在拿到表A中查找(条件为a.key="22"),把找到符合在的记录在按top值排序,top高的排在前面
没有找到的,都排在找到的gid后面。
  • 打赏
  • 举报
回复
没看很明白,抛砖引玉一下,如有问题,说一下吧,不好意思
  • 打赏
  • 举报
回复
select b.id from a.gid=b.id where a.key like '%22%' or b.keys like '%22%' order by a.top

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧