不确定如何为提到的任务构建SQL查询

时间:2018-10-28 17:41:19

标签: mysql sql

这些是我的表格:

concerts (
    concert_id: INT, 
    name: VARCHAR(200), 
    venue: VARCHAR(200), 
    schedule: DATETIME) 

singers (
    singer_id: INT, 
    name: VARCHAR(200), 
    gender: ENUM('male', 'female', 'other')) 

performances(singer_id: INT, 
    concert_id: INT) 
Foreign keys: {singer_id} to singers {concert_id} to concerts 

我正在尝试查询 列出一位歌手的所有音乐会,这些歌手在2018年参加了超过5场音乐会。 (5和2018是用户确定的变量,我目前正在对其进行测试)  我尝试了多次,似乎没有什么比我要完成的任务更接近。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  • 在子选择查询(Derived table)中,我们首先可以确定所有singer_id的值,这些值在2018年举办了5场音乐会。我们使用Group ByCount(...)函数一起使用,以确定singer_id的音乐会总数。 请注意,如果您在singer_id表中的concert_idperformances组合中有重复的行,则需要使用{{1} }函数。现在,我们可以使用Count(Distinct ...)子句只考虑那些计数大于5的歌手。
  • 现在,只需Having此派生表结果集到主表,即可获取2018年的音乐会列表。

尝试以下查询:

Join