这个语句该怎么写?

samyan 2008-09-16 11:29:09
表A,有一条记录中的字段Field1中的数据是A,B,C,D,E,F,G,是个集合

表B,有个字段Field2数据一般为:A,D,G或者是D,E,F,也是个集合

求B中所有含有一个或以上的表A中那条记录中字段Field1中的数据集合中的一个字符的记录

id Field2
1 A,P
2 B
3 C,D
4 H,L
4 J,K,M

求一条语句可得到一下记录集

id Field2
1 A,P
2 B
3 C,D
...全文
80 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-09-17
  • 打赏
  • 举报
回复
也可以用SQL语句拆分B表
vbman2003 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 WWWWA 的回复:]
这种方式不能直接实现,要将B表内容拆分成以下形式,再用上述代码连接
id Field2
1 A
1 P
2 B
3 C
3 D
4 H
4 L
5 J
5 K
5 M
[/Quote]


你这个表其实对于关系型数据库来说,不是合理的......
解决办法
如果是ACCESS环境,可以写个函数来解决
如果非ACCESS环境,那么你最好修改表结构,如果不能修改,建议添加一张表,构造就是WWWWA示例的那样....
如果就是26个字母,那好办,先建一个查询,名称为Q:

select 'A' as F from AA
union
select 'B' from AA
union
select 'C' from AA
union
select 'D' from AA
......
select 'X' from AA
union
select 'Y' from AA
union
select 'Z' from AA

然后:
select distinct ID,Field2
from B,(select F from Q,A where instr(Field1,F)>0) t
where instr(Field2,F)>0
WWWWA 2008-09-16
  • 打赏
  • 举报
回复
呵呵,
select b.* from b inner join a on instr(Field2,Field1)>0
samyan 2008-09-16
  • 打赏
  • 举报
回复
就是求表格B中所有含有表格A中某条记录中字段Field1数据中的A,B,C,D,E,F中的一个的记录,就是只要含有A,B,C,D,E,F中的一个字母的所有记录列出来!!
wwwwb 2008-09-16
  • 打赏
  • 举报
回复
求B中所有含有一个或以上的表A中那条记录中字段Field1中的数据集合中的一个字符的记录
呵呵,没有理解你的意思,
TRY:
SELECT A.* FROM TT A INNER JOIN
(SELECT ID FROM TT B GROUP BY ID HAVING COUNT(*)=1) B
ON A.ID=B.ID
WWWWA 2008-09-16
  • 打赏
  • 举报
回复
这种方式不能直接实现,要将B表内容拆分成以下形式,再用上述代码连接
id Field2
1 A
1 P
2 B
3 C
3 D
4 H
4 L
5 J
5 K
5 M
samyan 2008-09-16
  • 打赏
  • 举报
回复
表A
ID Field1 Field2 Field3
1 A,B,C,D,E,F STR2 STR3

表B
id Field2
1 A,P
2 B
3 C,D
4 H,L
5 J,K,M

我要的结果是:表B
id Field2
1 A,P
2 B
3 C,D
WWWWA 2008-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vbman2003 的回复:]
直接示例一下二个表的数据和要的结果,大家就容易理解了......
[/Quote]
就是,贴记录及要求结果出来看看
vbman2003 2008-09-16
  • 打赏
  • 举报
回复
直接示例一下二个表的数据和要的结果,大家就容易理解了......
WWWWA 2008-09-16
  • 打赏
  • 举报
回复
A表记录是否是:
FIELD1
A
B
C
D
E
F
如是,是可以查询出来的
samyan 2008-09-16
  • 打赏
  • 举报
回复
WWWWA ,你这个如果B中某条记录Field1中的数值是A,P,K,L,那你这个语句不就查不出来了吗?但是我这里面有A啊,我的意思是只要是Field1有出现Field2数据集合中的一个字符就要罗列出来的!!!你如我这里讲的A,P,K,L里面有A也是符合要求的

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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