ActorDirector?表:
+-------------+---------+
| Column Name | Type ? ?|
+-------------+---------+
| actor_id ? ?| int ? ? |
| director_id | int ? ? |
| timestamp ? | int ? ? |
+-------------+---------+
timestamp 是這張表的主鍵.
?
寫一條SQL查詢語句獲取合作過至少三次的演員和導演的 id 對?(actor_id, director_id)
示例:
ActorDirector 表:
+-------------+-------------+-------------+
| actor_id ? ?| director_id | timestamp ? |
+-------------+-------------+-------------+
| 1 ? ? ? ? ? | 1 ? ? ? ? ? | 0 ? ? ? ? ? |
| 1 ? ? ? ? ? | 1 ? ? ? ? ? | 1 ? ? ? ? ? |
| 1 ? ? ? ? ? | 1 ? ? ? ? ? | 2 ? ? ? ? ? |
| 1 ? ? ? ? ? | 2 ? ? ? ? ? | 3 ? ? ? ? ? |
| 1 ? ? ? ? ? | 2 ? ? ? ? ? | 4 ? ? ? ? ? |
| 2 ? ? ? ? ? | 1 ? ? ? ? ? | 5 ? ? ? ? ? |
| 2 ? ? ? ? ? | 1 ? ? ? ? ? | 6 ? ? ? ? ? |
+-------------+-------------+-------------+
Result 表:
+-------------+-------------+
| actor_id ? ?| director_id |
+-------------+-------------+
| 1 ? ? ? ? ? | 1 ? ? ? ? ? |
+-------------+-------------+
唯一的 id 對是 (1, 1),他們恰好合作了 3 次。
思路:分組,注意group by可以對多個字段使用。
select actor_id,director_id
from ActorDirector
group by actor_id ,director_id
having count(*)>=3;
?