嵌套的SQL查询别名

时间:2018-03-10 14:55:50

标签: sql

我有一张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',目前我不断收到语法错误。

提前感谢您的帮助!

1 个答案:

答案 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功能。在实践中,您可能希望按年份月分组,因为同一个月可以在多年内出现。