我有一张这样的桌子:
ID|col1|col2
1 |a . |e
2 |b . |b
3 |c . |x
4 |d . |x
5 |e . |y
现在我想要在第1列和第2列中存在值的所有行。
1 because e exists in col 1 and 2
2 because b exists in col 1 and 2
5 because e exists in col 1 and 2
有什么主意吗?我发现的所有解决方案都是通过联接匹配两个表的解决方案。 谢谢。
答案 0 :(得分:3)
我认为您正在寻找如下所示的自联接:
Select t.*
from mytable t
inner join mytable t2 on t.col1=t2.col2
或者,您可以使用“ IN”关键字,例如:
select t.*
from mytable t
where t.col1 in (select col2 from mytable)
答案 1 :(得分:0)
我找到了一个解决方案,但不确定是否这是最有效的解决方案:
select * from mytable
where col2 in (select col1 from mytable)
OR col1 in (select col2 from mytable)