Join multiple files with filename

Please help, I want to join multiple files based on column 1, and put the missing values as 0. Also the colname in the output should say which file the values came from.

FILE1

1 11
2 12
3 13

FILE2

2 22
3 23
4 24

FILE3

1 31
3 33
4 34
 
 FILE1 FILE2 FILE3
1 11 0 31
2 12 22 0
3 13 23 33
4 0 24 34
 

Here is what I have tried that isn't working,

awk -F"\t" ' FNR == 1 { c += 1; d = FILENAME; D[c] = d } END {while( k+1 <= c ) printf "%s\t", D[k] printf "\n" }' FILE* 
join -a1 -a2 -o0 1.2 2.2 -e "0" file1 file2 | join -a1 -a2 -o0 1.2 1.3 2.2 -e "0" - file3