i came up by visiting this question.
so i made a query like this
x
SELECT ru.iUserId,ru.iRefUserId,CONCAT(ru.vName,ru.vLastName) AS userName,CONCAT(iru.vName,iru.vLastName) AS RefUserName
FROM `register_user` ru
INNER JOIN `register_user` iru
ON ru.iRefUserId = iru.iRefUserId
WHERE ru.iRefUserId > 0
And Database is like this
So basically my need is i need an refUserId User Full Name When i am querying like
SELECT * FROM TABLE WHERE iRefUserId > 0
Above Query Result output me same name as the userName
Advertisement
Answer
You are probably looking for an outer join: Show all users along with their ref user, if such exists.
SELECT
ru.iuserid,
ru.irefuserid,
CONCAT(ru.vname, ru.vlastname) AS username,
CONCAT(iru.vname, iru.vlastname) AS refusername
FROM register_user ru
LEFT OUTER JOIN register_user iru ON iru.iuserid = ru.irefuserid
ORDER BY ru.iuserid;
I’ve corrected the erroneous join condition (wrong ID). Moreover, as there exists no user with user ID 0, and I guess you just meant to avoid looking that ID up, I dropped the condition ru.iRefUserId > 0
. It is not needed, because the outer join handles this already.