![](/img/trans.png)
[英]SQL substring of field contained within another substring for JOIN statement
[英]SQL join on attribute value contained in another field
我想在 attr_1 和 attr_2 上执行连接:
如果 attr_1 是由“/”分隔的 attr_2 的值之一,则执行良好的匹配。
attr_1 | attr_2 |
---|---|
索:562 | 累加器:5698A/SOR:22/SOR:562 |
索:120 | SOR:120/SOR:125 |
索:89 | SOR:1001/ACCU:569/SOR:56239/SOR:89 |
但我不希望这些匹配为 SOR:89 和 SOR:899912 因为它的值不同 (89 != 899912)
attr_1 | attr_2 |
---|---|
索:89 | 索:899912 |
我怎样才能避免错误的匹配? (我试过这个但它不起作用:
on t.attr_1 LIKE CONCAT('%',s.attr_2,'%')
) 上
代替
on t.attr_1 LIKE CONCAT('%',s.attr_2,'%')
我认为你想要得到的是
on t.attr_2 LIKE CONCAT('%',s.attr_1,'%')
将第二个属性转换为数组:
select *
from first_table t1
join second_table t2 on t1.attr1 = any(string_to_array(t2.attr2, '/'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.