gpt4 book ai didi

sql - 在多个 OR 条件下连接 2 个表

转载 作者:行者123 更新时间:2023-11-29 13:27:09 25 4
gpt4 key购买 nike

我想完成的事情:我想在 url 上加入 2 个表。但是一个表的 url 格式与另一个有点不同。因为它们是两个表之间唯一的共同点,(没有唯一的 id 可以加入)我必须使用通配符来匹配 url。

例如,一个表的格式如下:'www.url.com'、'url.com.'、'abc.def.url.com',而另一个表的格式为'url.com'所以为了匹配我需要做一些类似

的事情
LEFT JOIN t1
ON t1.url = '%.'||t2.url OR t1.url= t2.url||'.' OR etc...

这是解决这个问题的正确方法吗?

我正在使用 PostgreSQL。

最佳答案

当您加入 URL 时,您有非常严格的限制。 url.com 应与 url.com 匹配,www.url.com 应与 url.com 匹配,但 www.dummyurl.com 不应与 www.myurl.com 匹配。您的原始查询很好,是解决问题的正确方法。

为避免过度匹配,建议使用此

select * from t1 inner join t2
on t1.url like '%.'||t2.url or t1.url = t2.url

我使用内部连接来避免 NULL 匹配 Here's a demo

这假设 t2.url 将在一段时间后位于 t1.uel 的末尾或两者严格匹配。尝试运行它,看看是否得到预期的结果

关于sql - 在多个 OR 条件下连接 2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com