MySQL:比较一个表中两列的值

时间:2019-11-29 14:04:08

标签: mysql

我有一张这样的桌子:

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

有什么主意吗?我发现的所有解决方案都是通过联接匹配两个表的解决方案。 谢谢。

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)