Sql 如何检查行中的元素是否存在于其他列的某个位置,但不存在于同一行中
我有一个SQL表,如下所示Sql 如何检查行中的元素是否存在于其他列的某个位置,但不存在于同一行中,sql,Sql,我有一个SQL表,如下所示 -------------------------- | REPO | USER | FOLLOWER | -------------------------- | A | 1 | 3 | | A | 2 | 4 | | A | 3 | 6 | | B | 2 | 7 | | B | 4 | 2 | | C | 5 | 3
--------------------------
| REPO | USER | FOLLOWER |
--------------------------
| A | 1 | 3 |
| A | 2 | 4 |
| A | 3 | 6 |
| B | 2 | 7 |
| B | 4 | 2 |
| C | 5 | 3 |
| C | 2 | 6 |
| C | 6 | 5 |
--------------------------
现在,我只想查看用户跟随另一个用户的行
同样的回购协议。
i、 e.我想要在FOLLOWER中的元素也在USER中的行
回购协议
输出应该像
--------------------------
| REPO | USER | FOLLOWER |
--------------------------
| A | 1 | 3 |
| B | 4 | 2 |
| C | 6 | 5 |
| C | 2 | 6 |
--------------------------
谢谢:)一个简单的方法使用
存在:
select t.*
from t
where exists (select 1 from t t2 where t2.repo = t.repo and t2.follower = t.user);
输出是否应该如下所示,即4行
--------------------------
| REPO | USER | FOLLOWER |
--------------------------
| A | 1 | 3 |
| B | 4 | 2 |
| C | 6 | 5 |
| C | 2 | 6 |
--------------------------
我删除了不兼容的数据库标记。仅标记您真正使用的数据库。未显示任何尝试。您使用的是什么数据库?或者这只是一个抽象的sql问题?答案实际上取决于你是谁using@MikhailBerlyant我从GoogleBigQuery获取表,并在databricksso中使用它。您是否需要BigQuerySQL?提问,因为它在您的原始问题中被标记。请澄清,谢谢。但这也不是根据回购协议进行过滤。即使用户的跟随者本身不是同一回购协议的用户,它也在采取行动。@Shaly。“我只想查看用户跟随另一用户进行相同回购的行”。这是你的话,这个答案就是这样。