Mi primer pensamiento es mejorar el esquema y ¿realmente necesitas hacer esto?
Para simplificar la pregunta, parece que desea establecer el nombre de la columna en función de una combinación con mstBCE. No necesita una relación porque la cantidad de columnas en tblBCE es fija. En su lugar, use sql dinámico para establecer los nombres de las columnas seleccionando desde mstBCE girado en una fila.
DECLARE @sql nvarchar(4000);
SELECT @sql = N'SELECT u.[username], u.[department],
b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1],
b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2],
b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3]
FROM tblBCE as b
JOIN tblUser as u ON b.[UserID] = u.[userid]; '
FROM (
SELECT [tabconfigid], [tabdata]
FROM mstBCE
WHERE [tabType] = N'BCE'
) as m
PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt;
EXEC (@sql);