Mysql 来自同一表的sql联接值
我是通过拜访来的 所以我提出了这样一个问题Mysql 来自同一表的sql联接值,mysql,sql,join,self-join,Mysql,Sql,Join,Self Join,我是通过拜访来的 所以我提出了这样一个问题 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.iRefUse
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
数据库是这样的
所以基本上我需要的是当我查询
SELECT * FROM TABLE WHERE iRefUserId > 0
上面的查询结果输出与用户名相同的名称
需要更改连接键
SELECT ru.iUserId,ru.iRefUserId,
CONCAT(ru.vName,ru.vLastName) AS userName,
CONCAT(iru.vName,iru.vLastName) AS RefUserName
FROM `register_user` ru
JOIN `register_user` iru
ON ru.iuserid = iru.iRefUserId
WHERE ru.iRefUserId > 0
注:我在ru.iRefUserId>0处给出了此密码,因为您在回答中给出了此密码,这就是原因,但如果您将此密码放在第一位,则您将始终被忽略。您可能正在寻找外部连接:显示所有用户及其ref用户(如果存在)
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;
我已更正了错误的连接条件错误ID。此外,由于不存在用户ID为0的用户,并且我猜您只是想避免查找该ID,因此我放弃了条件ru.iRefUserId>0。不需要它,因为外部联接已经处理了这个问题。这里的大多数人希望示例表数据和预期结果是格式化文本,而不是图像。看一看,帮助你很容易!我已经提供了理解该问题所需的样本数据@jarlh@jarlh好的,我会处理这个:-不工作。。!当我从register_user`ru WHERE ru.iRefUserId>0`运行SELECT ru.iUserId、ru.iRefUserId、CONCATru.vName、ru.vLastName作为用户名时,我找到了一个数据,但当我运行查询时,它返回0results@TarangPchcecck我为你创建的演示链接,在否决投票前工作正常,请切克1sti没有这样做@Zaynul