sql - 查询找到共同喜欢的人?

标签 sql sql-server

我有一个表,其中包含特定人员的 id 和他喜欢的人的 id。

点赞

(p1,p2)
id1,id2
id2,id1
id3,id4
id3 id5

预期输出

id1,id2

我必须删除重复项,这也意味着 id1,id2 要返回一次。

这是一道练习题。

select hh.id, hh.name, hh.grade as gr
     , hh.id2, kk.name, kk.grade as gr1
  from ( select id, id2, grade, name 
           from highschooler ab 
              , Likes cd 
          where ab.id = cd.id1 ) hh 
     , highschooler kk 
 where hh.id2 = kk.id

此查询返回类似这样的内容

student id,student name,student grade,friend student likes,friend name,friend grade

最佳答案

这应该使它自身加入:

SELECT p.p1, p.p2
FROM Likes p
    INNER JOIN Likes p2 ON 
        p.p1=p2.p2 AND 
        p.p2=p2.p1 AND 
        p.p1<p2.p1

Sample Fiddle Demo

关于sql - 查询找到共同喜欢的人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042054/

相关文章:

mysql - 使用 join 语句和标签映射时搜索两个或多个标签

sql-server - Sql Server 2005 全文搜索中的干扰词

sql - 如何在 SQL Server 2008 R2 中获得精确结果(不是四舍五入的结果)?

sql - 如何索引 Col1 +'|' + Col2 以进行最快的搜索

sql-server - 如何从必应 map 服务计算两个邮政编码之间的距离

mysql - mysql如何连接表

c# - 处理开发和生产之间的模式变化

php - fatal error : Call to a member function set_charset()

c# - DateTime 类型的 SQL 输出中不显示毫秒

php - SQL 错误 : SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails