这些是我的table:
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条答案
按热度按时间v6ylcynt1#
在子选择查询(派生表)中,我们可以首先确定
singer_id
2018年有5场以上演唱会的value(s)。我们使用Group By
与Count(...)
函数,以确定singer_id
. 请注意,如果您的singer_id
以及concert_id
中的组合performances
表,则需要使用Count(Distinct ...)
功能。现在,我们可以使用Having
子句只考虑计数大于5的歌手。现在,简单地说
Join
此派生表将结果集设为主表,以便获得2018年的音乐会列表。尝试以下查询: