通过面具加入两个表

时间:2013-05-23 05:21:24

标签: sql postgresql join jointable

我有2个表 PAGE SITE 。 PAGE表具有字段URL。并且SITE表具有字段DOMEN_URL。我想在这些字段上加入两个表。但我想加入的条件是页面的网址属于网站的域名网址。换句话说,页面的网址应以域网址开头。

也就是说,例如,包含网址“http://mysite.com/blablabla”的网页属于域名为“http://mysite.com”的网站域。但是,网址为“http://other.com/translate?url=http://www.mysite.com”的网页不属于域网址“http://mysite.com”。

这种情况必须是真的:

POSITION(TRIM(REGEXP_REPLACE(site.domain_url, '^(http|https)://(www\\.|)', ''), '/')
IN TRIM(REGEXP_REPLACE(page.url, '^(http|https)://(www\\.|)', ''), '/')) = 1 

但是我不能在JOIN的语句ON中指定这个表达式。

我该如何解决这个问题?有可能吗?

1 个答案:

答案 0 :(得分:0)

select *
from page
join site on page.url like site.domain_url || '%'