我在使用 MySQL 选择查询完成某些事情时遇到了麻烦。我有一个统计表,其中包含一个字母数字 ID 列、一个 yearID 列,然后是许多其他列,指示在指定年份发生了多少次事情。像这样:
personID yearID event1 event2 event3
person1 1999 12 15 2
person1 2000 14 7 3
person1 2001 25 10 2
person2 1999 16 12 1
person2 2000 15 14 1
person2 2001 9 20 2
我正在尝试使用 select 来获取以下列:
personID event1_1999 event1_2000 event1_2001 event2_1999 event2_2000 etc...
所以我使用了这种类型的代码:
select
personID,
if(year_ID = "1999",event1,NULL) AS event1_1999,
if(year_ID = "2000",event1,NULL) AS event1_2000,
if(year_ID = "2000",event1,NULL) AS event1_2001,
etc.
不幸的是,我在结果中发现只有与第一年相对应的列(因此,在示例中,event1_1999、event2_1999 等)包含任何数据,其余的都是空的。我不知道为什么会这样,或者解决它的方法。任何人都可以帮忙吗?
谢谢