The comment clarified you want all columns equal width, so you should accept the other answer, however this shows how to distribute the width of \multicolumn equally between the columns it spans. In this form you have to give the row twice, once with the actual text spans and then again so that it can pad each row. That interface could be improved with more care,

\documentclass{article}
\usepackage{latexsym}
\usepackage{bm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\makeatletter
\def\x@multispan#1{%
\global\let\@tempa\@empty
\@multicnt#1\relax
\loop\ifnum\@multicnt>\@ne
\xdef\@tempa{\@tempa\kern\dimen@i\hfill&\omit}%
\advance\@multicnt\m@ne
\repeat
\@tempa\kern\dimen@i\hfill}
\long\def\xmulticolumn#1#2#3{%
\omit
\begingroup
\def\@addamp{\if@firstamp \@firstampfalse \else
\@preamerr 5\fi}%
\@mkpream{#2}\@addtopreamble\@empty
\endgroup
\def\@sharp{#3}%
\setbox\z@\hbox{{\@preamble}}%
\global\dimen@i\wd\z@
\global\divide\dimen@i#1\relax
\ignorespaces
\x@multispan{#1}}
\makeatother
\begin{center}%\tracingmacros2
\tracingonline2
\begin{tabular}{|*{9}{c|}}
\hline
\multicolumn{9}{|c|}{join} \\
\hline
\multicolumn{3}{|c|}{First Long Text} &
\multicolumn{3}{c|}{Second Long Text} &
\multicolumn{3}{c|}{Third Long Text} \\
\xmulticolumn{3}{|c|}{First Long Text} &
\xmulticolumn{3}{c|}{Second Long Text} &
\xmulticolumn{3}{c|}{Third Long Text} \\
\hline
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
\hline
\end{tabular}
\end{center}
\end{document}