2

我需要通过两个表的组合来获取结果。

select template_id 
from templatetbl 
where template_xml like '%889d-5765405edb42%'

在查询时,我得到了 24 条记录。

现在我想用我之前得到的模板 id 获取另一组记录。

select * 
from sites 
where site_xml like '%templateid%'.

Templateid 是我之前得到的。

我试过这样的查询

select * 
from sites 
where site_xml like (select template_id 
                     from templatetbl 
                     where template_xml like '%889d-5765405edb42%')

但是由于 单行子查询返回多行而出现错误。

请帮助结合这两个查询

4

2 回答 2

1

尝试这个:

select * 
from sites 
where site_xml like (select '''%'||template_id||'%'''
                     from templatetbl 
                     where template_xml like '%889d-5765405edb42%')
于 2013-05-30T16:05:45.293 回答
0

这应该这样做。一个简单的连接,您可以在其中动态构建LIKE字符串。

SELECT S.*
FROM   templatetbl T, sites S
WHERE  T.template_xml LIKE '%889d-5765405edb42%'
AND    S.site_xml     LIKE '%'||TO_CHAR(T.templateid)||'%'

编辑:请注意,这可能不是您想要的。因为templateid1匹配1, 10, 11,... 21,...100

于 2013-05-30T16:06:00.030 回答