我有一张COACHINSHOW表和TVSHOW表。在COACHINSHOW表中,我有COACHINSHOW,IDSHOW列。在TVSHOW表中,我有IDSHOW和DATE。我正在尝试做一个嵌套查询来获取教练列表,每个月都有他们的出勤率。这就是我到目前为止所做的:
SELECT J.IDCOACH, J.MONTH(DATE), COUNT(*)
FROM (SELECT C.IDCOACH, C.IDSHOW, T.DATE
FROM (COACHINSHOW AS C JOIN TVSHOW AS T AS J)
WHERE C.IDSHOW = T.IDSHOW);
但是我不确定,在哪里放置别名'AS J',目前我不断收到语法错误。
提前感谢您的帮助!
答案 0 :(得分:0)
我认为两个表之间的简单内连接应该在这里工作。请注意,您最有可能需要在此处使用GROUP BY
,因为您希望按教练和月份对整个表进行聚合。
SELECT
c.IDCOACH,
MONTH(t.DATE),
COUNT(t.IDSHOW) AS num_shows_month
FROM COACHINSHOW c
LEFT JOIN TVSHOW t
ON c.IDSHOW = t.IDSHOW
GROUP BY
c.IDCOACH,
MONTH(t.DATE);
我假设您的数据库具有MONTH
功能。在实践中,您可能希望按年份和月分组,因为同一个月可以在多年内出现。