请教sql语句,如何用like关联两个表中的字段,将查询结果的部分内容提取出来?

时间:2022-09-11 13:28:29
比如我有2个表A和B,B中有个字段detail的查询结果中包含几个A中的1个字段code的内容,怎么把包含的这个内容提出来呢? detail的内容是:<company name="A公司" id="487033"> <company name="B公司" id="556"/> <company name="C公司" id="929"/> <company name="D公司" id="487034"/> 就是要把这里的id的值取出来,id的值在A表的code中都有。 请教sql语句,如何用like关联两个表中的字段,将查询结果的部分内容提取出来?请教sql语句,如何用like关联两个表中的字段,将查询结果的部分内容提取出来?

8 个解决方案

#1


在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

#2


instr(b.detail,a.code)>0

#3


引用 1 楼 Diza1986 的回复:
在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

就是把B表中DELTAIL中的id全都取出来

#4


引用 1 楼 Diza1986 的回复:
在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

上面那个好像不对,其实就是在A表中找出在B表中出现的code

#5



select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

#6


引用 5 楼 Diza1986 的回复:

select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code

#7


引用 6 楼 ClaudiaChoo 的回复:
Quote: 引用 5 楼 Diza1986 的回复:


select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code


这个结果就是B表每条detail中出现的A表的code,取b.id为了知道是哪一条而已,可以把b.detail也取出来,select后加上就行了

#8


引用 7 楼 Diza1986 的回复:
Quote: 引用 6 楼 ClaudiaChoo 的回复:

Quote: 引用 5 楼 Diza1986 的回复:


select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code


这个结果就是B表每条detail中出现的A表的code,取b.id为了知道是哪一条而已,可以把b.detail也取出来,select后加上就行了

没错,就是这样的,多谢大神 请教sql语句,如何用like关联两个表中的字段,将查询结果的部分内容提取出来?

#1


在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

#2


instr(b.detail,a.code)>0

#3


引用 1 楼 Diza1986 的回复:
在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

就是把B表中DELTAIL中的id全都取出来

#4


引用 1 楼 Diza1986 的回复:
在什么样的数据情况下,要什么样的结果,给个例子啊,不好理解你想怎样

上面那个好像不对,其实就是在A表中找出在B表中出现的code

#5



select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

#6


引用 5 楼 Diza1986 的回复:

select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code

#7


引用 6 楼 ClaudiaChoo 的回复:
Quote: 引用 5 楼 Diza1986 的回复:


select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code


这个结果就是B表每条detail中出现的A表的code,取b.id为了知道是哪一条而已,可以把b.detail也取出来,select后加上就行了

#8


引用 7 楼 Diza1986 的回复:
Quote: 引用 6 楼 ClaudiaChoo 的回复:

Quote: 引用 5 楼 Diza1986 的回复:


select b.id,a.code
from a,b
where instr(b.detail, '"'||a.code||'"') > 0

不是B表中的id,而是B表detail中出现的id的值才是A表的code


这个结果就是B表每条detail中出现的A表的code,取b.id为了知道是哪一条而已,可以把b.detail也取出来,select后加上就行了

没错,就是这样的,多谢大神 请教sql语句,如何用like关联两个表中的字段,将查询结果的部分内容提取出来?