这些是我的表格:
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是用户确定的变量,我目前正在对其进行测试) 我尝试了多次,似乎没有什么比我要完成的任务更接近。对此的任何帮助将不胜感激。
答案 0 :(得分:0)
singer_id
的值,这些值在2018年举办了5场音乐会。我们使用Group By
与Count(...)
函数一起使用,以确定singer_id
的音乐会总数。 请注意,如果您在singer_id
表中的concert_id
和performances
组合中有重复的行,则需要使用{{1} }函数。现在,我们可以使用Count(Distinct ...)
子句只考虑那些计数大于5的歌手。Having
此派生表结果集到主表,即可获取2018年的音乐会列表。尝试以下查询:
Join