【发布时间】:2014-11-03 07:41:18
【问题描述】:
我使用以下查询确定了类别中最受欢迎的演员 (topActor):
SELECT category_id AS cid,
(SELECT actor_id FROM
film_actor JOIN film_category
ON film_actor.film_id = film_category.film_id
WHERE category_id = cid
GROUP BY actor_id
ORDER BY COUNT(*) DESC
LIMIT 0,1) AS topActor
FROM film_actor JOIN film_category
ON film_actor.film_id = film_category.film_id
GROUP BY category_id
+-----+----------+
| cid | topActor |
+-----+----------+
| 1 | 50 |
| 2 | 150 |
| 3 | 17 |
| 4 | 86 |
| 5 | 196 |
| 6 | 48 |
| 7 | 7 |
| 8 | 79 |
| 9 | 164 |
| 10 | 68 |
| 11 | 27 |
| 12 | 108 |
| 13 | 105 |
| 14 | 107 |
| 15 | 83 |
| 16 | 44 |
+-----+----------+
16 rows in set (0.00 sec)
现在我需要从 first_name 和 last_name >actor,包含 actor_id、first_name 和 last_name。我知道如何使用 PL/SQL 或 SAS 来做到这一点,但我是 MySQL 新手。请帮忙!谢谢你。
【问题讨论】:
-
不要在
SELECT子句中使用嵌套查询 - 加入它 -
请发布一个 sql 文件或至少您的相关数据库结构。
标签: mysql