If you just want to retrieve the CONCATenated value , you could do like this :
SELECT
CONCAT(
IFNULL( `username_a` , '' )
,IFNULL( `username_l` , '' )
,IFNULL( `username_u` , '' )
)
FROM `roles_map`
But if you want to store it in a new column say username
, first add the column :
ALTER TABLE `roles_map` ADD `username` VARCHAR( 45 ) NOT NULL DEFAULT '';
Then use an UPDATE statement something like this :
UPDATE `roles_map`
SET `username` =
CONCAT(
IFNULL( `username_a` , '' )
,IFNULL( `username_l` , '' )
,IFNULL( `username_u` , '' )
)
To JOIN you could try something like this :
SELECT
`roles_map`.*
,CONCAT(
IFNULL( `username_a` , '' )
,IFNULL( `username_l` , '' )
,IFNULL( `username_u` , '' )
) AS username
FROM
`roles_map`
LEFT OUTER JOIN
`admins` ON
`admins`.`login` =
CONCAT(
IFNULL( `roles_map`.`username_a` , '' )
,IFNULL( `roles_map`.`username_l` , '' )
,IFNULL( `roles_map`.`username_u` , '' )
)
Links : CONCAT , IFNULL