当我加入2张桌子时
select t1.col1, t1.col2, t2.col3
from t1
left join t2
on t1.col2=t2.col3
然后我没有得到任何重复的行。但是,当我尝试加入时 使用通配符的表:
select t1.col1, t1.col2, t2.col3
from t1
left join t2
on t1.col2 like '%'||t2.col3
然后我会得到重复的值。我看到这篇文章是我认为的 把我带到某个地方,但我无法理解这个解决方案。
Joining 2 Tables using a wildcard
它说我可以使用exists
来摆脱重复的值。我也
不太了解他的疑问。这是另一个查询
交:
select *
from tableA a
where exists (select 1 from tableB b where a.id like '%' + b.id + '%');
select 1 from tableB
做了什么?
我正在使用PostgreSQL
这是我尝试过的,即使我不理解它并仍然给我重复:
select t1.col1,t1.col2,t2.col3
from t1
left join t2
on t1.col2 like '%'||t2.col3
where exists (select 1 from t2 where t1.col2 like '%'||t2.col3)
答案 0 :(得分:0)
Use the DISTINCT
clause:
SELECT DISTINCT t1.col1, t1.col2, t2.col3
FROM t1
LEFT JOIN t2 ON t1.col2 LIKE '%'||t2.col3;