一个表上的简单 SQL 查询

Posted

技术标签:

【中文标题】一个表上的简单 SQL 查询【英文标题】:Simple SQL query on one single table 【发布时间】:2018-05-27 01:54:24 【问题描述】:

我很惭愧,但我必须问这个SQL 问题。我实际上在android 上使用SQLITE

我们假设只有一个有 2 列的表。

USER1 USER2 
111   555
111   300
445   111
555   111
325   111
111   233
300   111

我想得到以下结果:

USER1 USER2
111   300
111   555

我尝试了INNER JOININTERSECT,但无法正常工作。

非常感谢!!!

【问题讨论】:

请将您的查询添加到您的问题中。 I tried INNER JOIN and INTERSECT 显示代码。 请解释获取这两行而不是其他行的逻辑是什么。 你完全正确。对于没有添加我的代码并且没有以更好的方式解释我想要实现的目标,我深表歉意。 @arlh 解决了我的问题。 【参考方案1】:

看起来您希望表中也存在切换的 user1/user2 的行。还有用户1

select t1.user1, t1.user2
from table t1
join table t2 on t1.user1 = t2.user2 and t1.user2 = t2.user1
where t1.user1 <= t1.user2

【讨论】:

@jarlh 你应该接受这个答案。 @IntelliJAmiya,是 jennie788 提出这个问题的。 @jarlh 非常感谢!!!你的回答解决了我的问题。我的问题是我使用了: join table t2 on t1.user1 = t2.user2 而不是你写的: join table t2 on t1.user1 = t2.user2 and t1.user2 = t2.user1

以上是关于一个表上的简单 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

提高大型表上的 SQL Server 查询性能

基于日期时间值的相同表上的高效sql子查询

同一张表上的多个连接,在一个查询中计数

具有集群和分区的表上的 Bigquery SQL 性能问题

在MS SQL上的更新查询中减少PAGE级别的死锁

SQL - 连接表上的查询