如何显示 table 中的所有行并从 MySQL 中的另一个 table 开始计数

How do I display all rows from a table and count from another table in MySQL

我有一个演员列表,目标是显示演员出演了多少“X”电影,我还必须显示所有演员的名字,无论他们是否出演过“X”电影与否。

这是我的表格供参考:

演员 | A_ID | A_FNAME | A_LNAME | A_YOB

角色 | A_ID | M_ID | R_ROLE

电影 | M_ID | M_NAME | M_YOR

我目前的情况是这样的:

SELECT ALL A_FNAME, A_LNAME, COUNT(R_ROLE) AS "X FILMS"
 FROM ACTOR                                                  
 LEFT OUTER JOIN ROLE                                        
 ON ACTOR.A_ID = ROLE.A_ID                                   
 WHERE R_ROLE LIKE '%(X)%'                          
 GROUP BY A_FNAME, A_LNAME; 

只输出在X部电影中扮演过的演员,但是我需要它来显示我插入的所有演员。我该怎么做?

带子查询:

select  A_FNAME, A_LNAME,(select count(*) from role where role.a_id =a.a_id and  R_ROLE LIKE '%(X)%'  )from actor a

加入

SELECT ALL A_FNAME, A_LNAME,coalesce( COUNT(R_ROLE),0) AS "X FILMS"
 FROM ACTOR                                                  
 LEFT OUTER JOIN (select * from ROLE WHERE R_ROLE LIKE '%(X)%') r                          
 ON ACTOR.A_ID = r.A_ID                                   
 GROUP BY A_FNAME, A_LNAME; 

这里coalesce()用于将空值替换为0。