我需要选择出现在大多数电影中的演员。
我正在使用sakila数据库1.0:

.mwb (MySQL Workbench): https://www.sendspace.com/file/i0z82j
.sql (schema): https://www.sendspace.com/file/vd3hnu
.sql (data): https://www.sendspace.com/file/gbp9ri


我已经有两个查询


这会选择每个演员n次(n =电影中的出场人数)。
我的查询:
选择actor.first_name,actor.last_name
从演员
INNER JOIN film_actor
开启actor.actor_id = film_actor.actor_id;


结果:

+------------+-------------+
| first_name | last_name   |
+------------+-------------+
| PENELOPE   |GUINESS      | //4 Films in this examle
| PENELOPE   |GUINESS      |
| PENELOPE   |GUINESS      |
| PENELOPE   |GUINESS      |
| NICK       |WAHLBERG     | //5 Films in this examle
| NICK       |WAHLBERG     |
| NICK       |WAHLBERG     |
| NICK       |WAHLBERG     |
| NICK       |WAHLBERG     |
| ED         |CHASE        | //5 Films in this examle
| ED         |CHASE        |
| ED         |CHASE        |
| ED         |CHASE        |
| ED         |CHASE        |
| JENNIFER   |DAVIS        | //4 Films in this examle
| JENNIFER   |DAVIS        |
| JENNIFER   |DAVIS        |
| JENNIFER   |DAVIS        |
| BETTE      |NICHOLSON    | //3 Films in this examle
| BETTE      |NICHOLSON    |
| BETTE      |NICHOLSON    |
| ...        |...          | //Everyother Actor who appeared in a film
+------------+-------------+



它会选择每部影片中的特定演员出演。
我的查询:
选择actor_id,film_id
FROM film_actor
在哪里actor_id = 1;


结果:演员1出现在19部电影中。

+----------+-------- +
| actor_id | film_id |
+----------+---------+
| 1        | 1       |
| 1        | 23      |
| 1        | 25      |
| 1        | 106     |
| 1        | 140     |
| 1        | 166     |
| 1        | 277     |
| 1        | 361     |
| 1        | 438     |
| 1        | 499     |
| 1        | 506     |
| 1        | 509     |
| 1        | 605     |
| 1        | 635     |
| 1        | 749     |
| 1        | 832     |
| 1        | 939     |
| 1        | 970     |
| 1        | 980     |
+----------+---------+


但是我想要的是:
出现在最多电影中的演员:

+------------+---------------+--------+
| first_name | last_name     | films  |
+------------+---------------+--------+
| NICK       | WAHLBERG      | 5      |
| ED         | CHASE         | 5      |
| ...        | ...           | ...    |
+------------+----------------+-------+


非常感谢您的帮助。
谢谢!

最佳答案

我无法在您的数据库上运行查询,但我会这样做:

SELECT count(film_actor.actor_id), actor.first_name, actor.last_name
FROM actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id
GROUP BY film_actor.actor_id ;


未经测试

关于mysql - 影片最多的MySQL Sakila Select Actor ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42246046/

10-10 22:06