积木工具箱 发表于 2021-3-31 10:43

sql请教

大佬们我现在遇到个问题 我现在有两个表
用户表结构
表名字 user
user_id user_name 两个字段

还有一个邀请关系表
表明 invite_sole
invitee_id inviter_id 两个字段分别是邀请人用户id和被邀请人用户id

现在我想要下面几个字段
邀请人id邀请人名称    被邀请人id被邀请人名称
invitee_id invitee_name inviter_id    invitee_name

sql语句该如何写呢
我现在只能查到邀请人的名字 被邀请人的查不到 sql语句为
select user.user_id,user.user_name,invite_sole.invitee_id from user left join invite_sole on user.user_id = invite_sole.invitee_id

joke_shen 发表于 2021-3-31 10:48

再用invitee_id关联一下user表的user_id不就出来被邀请人名称了么

积木工具箱 发表于 2021-3-31 10:52

joke_shen 发表于 2021-3-31 10:48
再用invitee_id关联一下user表的user_id不就出来被邀请人名称了么

那是改怎么写....

243634473 发表于 2021-3-31 10:53

select a.user_id, a.user_name, b.invitee_id,c.user_name
from user a
left join invite_sole b on a.user_id = b.invitee_id
left join user c on b.inviter_id = a.user_id

大爱九月 发表于 2021-3-31 11:07

本帖最后由 大爱九月 于 2021-3-31 11:08 编辑

select a., b., a.,c.
from a
left join b on a.invitee_id = b.
left join c on a.inviter_id = c.

亲测可以

时光不弃青栀 发表于 2021-3-31 11:08

用自连接或连表

wslans 发表于 2021-3-31 11:20

直接普通查询返回记录集也一样{:1_918:}

寒蝉 发表于 2021-3-31 11:23

select sole.inviter_id, sole.inviter_id, u.user_name as invitee_name, u2.user_name as inviter_name
from tmp_test.invite_sole sole
         left join user u on sole.invitee_id = u.user_id
         left join user u2 on sole.inviter_id = u2.user_id





寒蝉 发表于 2021-3-31 11:24

更正下,上面的 SQL 有个字段名写错了。

select sole.invitee_id, sole.inviter_id, u.user_name as invitee_name, u2.user_name as inviter_name
from tmp_test.invite_sole sole
         left join user u on sole.invitee_id = u.user_id
         left join user u2 on sole.inviter_id = u2.user_id
页: [1]
查看完整版本: sql请教