Access select where 数据库查询 多表联合查询
Access中现有两个表Table1,Table2Table1数据结构如下---------------------------idpid----------------...
Access中现有两个表Table1,Table2
Table1数据结构如下
---------------------------
id pid
---------------------------
1 23
2 14,23
3 4
4 2,5,6
......
---------------------------
Table2数据结构如下
---------------------------
pid name
---------------------------
1 abc
2 defghijk
3 lmnop
4 def
......
---------------------------
现需要找出Table1中所有pid 对应的name 含 某个字符串 的数据id
如查找"def", Table2对应满足条件的pid 有2,4;需要查询的Table1中的数据集就有3,4两条,第1,2条包含对应数值但不符合精确查找pid,需排除。
已经尝试可以使用以下语句查询到Table1.pid 只有单项的数据, 如上例中只有第3项
select id from table1 where pid in (select cint(pid) from table2 where name like '%def%')
但Table1.pid 有多项(使用逗号隔开)的数据无法查询,如例中无第4项
使用ASP(不是asp.net)+Access 如何写sql可以实现, 求解
多谢1楼的回答,经尝试,有以下问题需解决后实现
1,不能用||连接,like里要用+
2,字段变量不能在单引号内
3, 要对所有pid Cstr() 类型转换,仅限本例
最终效果如下
select a.id from table1 as a join table2 as b where (( a.pid = Cstr(b.pid) or a.pid like '%,'+Cstr(b.pid) or a.pid like '%,'+Cstr(b.pid)+',%' or a.pid like Cstr(b.pid)+',%') and b.name like '%def%') 展开
Table1数据结构如下
---------------------------
id pid
---------------------------
1 23
2 14,23
3 4
4 2,5,6
......
---------------------------
Table2数据结构如下
---------------------------
pid name
---------------------------
1 abc
2 defghijk
3 lmnop
4 def
......
---------------------------
现需要找出Table1中所有pid 对应的name 含 某个字符串 的数据id
如查找"def", Table2对应满足条件的pid 有2,4;需要查询的Table1中的数据集就有3,4两条,第1,2条包含对应数值但不符合精确查找pid,需排除。
已经尝试可以使用以下语句查询到Table1.pid 只有单项的数据, 如上例中只有第3项
select id from table1 where pid in (select cint(pid) from table2 where name like '%def%')
但Table1.pid 有多项(使用逗号隔开)的数据无法查询,如例中无第4项
使用ASP(不是asp.net)+Access 如何写sql可以实现, 求解
多谢1楼的回答,经尝试,有以下问题需解决后实现
1,不能用||连接,like里要用+
2,字段变量不能在单引号内
3, 要对所有pid Cstr() 类型转换,仅限本例
最终效果如下
select a.id from table1 as a join table2 as b where (( a.pid = Cstr(b.pid) or a.pid like '%,'+Cstr(b.pid) or a.pid like '%,'+Cstr(b.pid)+',%' or a.pid like Cstr(b.pid)+',%') and b.name like '%def%') 展开
1个回答
2015-07-24
展开全部
试试 select a.id from table1 as a join table2 as b where ( a.pid = b.pid or a.pid like '%,||b.pid or a.pid like '%,||b.pid||,%' or a.pid like b.pid||,%') and b.name like '%def%')
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询