0
team1
+----------+----------+
| id1      | name     |
+----------+----------+
| 1        | a        |
| 2        | b        |
| 3        | c        |
+----------+----------+

team2
+----------+----------+
| id2      | name     |
+----------+----------+
| 1        | d        |
| 2        | e        |
| 3        | f        |
+----------+----------+

play
+----------+----------+----------+
| id3      | id1      | id2      |
+----------+----------+----------+
| 1        | 1        | 1        |
| 2        | 1        | 3        |
| 3        | 2        | 1        |
| 4        | 3        | 2        |
| 5        | 2        | 3        |
+----------+----------+----------+

我是 sql 新手。我正在为如何设置计数条件而苦苦挣扎。假设对于上面的表格,我想找到一个来自 team1 的球员,他与来自 team2 的球员一起比赛,该球员总共打过或将打过至少两次。所以基本上,如果来自 id2 的值出现不止一次,那么来自 id1 的任何与 id2 对抗的值都应该是结果的一部分。只需查看表格,如果没有冗余,我希望它返回 id1 = 1 和 id1 = 2。我不知道该怎么做。

4

1 回答 1

0

尝试:

select distinct p1.id1
from play p1
join (select id2
      from play
      group by id2
      having count(*) > 1) p2
on p1.id2 = p2.id2
于 2012-11-19T07:38:55.697 回答