如何显示 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。
我有一个演员列表,目标是显示演员出演了多少“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。