Mysql 选择特定年份中存在但不在其他特定年份中存在的所有位置

Mysql 选择特定年份中存在但不在其他特定年份中存在的所有位置,mysql,Mysql,我有一个表,有两列,ID和YEARS。年份从2000年开始到现在。某些ID在ID列中出现20次(每年打开),其他ID仅出现一次(2020年)。我想选择那些存在于特定年份但不存在于其他特定年份的ID。例如:选择那些存在于2013年和2107年,但不存在于2015年和2018年的表。您希望汇总表以获得每个ID的一行(按ID分组)。您只需要存在于特定年份中的ID,而不需要存在于其他特定年份中的ID 聚合条件放在具有的中。在MySQL中,true等于1,false等于0,因此您可以将它们相加: sele

我有一个表,有两列,ID和YEARS。年份从2000年开始到现在。某些ID在ID列中出现20次(每年打开),其他ID仅出现一次(2020年)。我想选择那些存在于特定年份但不存在于其他特定年份的ID。例如:选择那些存在于2013年和2107年,但不存在于2015年和2018年的表。

您希望汇总表以获得每个ID的一行(
按ID分组
)。您只需要存在于特定年份中的ID,而不需要存在于其他特定年份中的ID

聚合条件放在具有的
中。在MySQL中,true等于1,false等于0,因此您可以将它们相加:

select id
from mytable
group by id
having sum(year = 2013) > 0
   and sum(year = 2017) > 0
   and sum(year = 2015) = 0
   and sum(year = 2018) = 0
order by id;

欢迎来到SO。请参阅请用更多细节(例如:数据库结构、数据库示例内容)演示您的问题谢谢!!。和我想找的一模一样。