Mysql 同一表中的多个联接

Mysql 同一表中的多个联接,mysql,Mysql,我正在尝试从同一用户数据表连接两种不同类型的用户 我有一个具有以下模式的数据库表 代理关系 买方id 代理id 我有一个包含用户数据的表: 使用者 身份证 名字 姓 我想要的是具有以下内容的数据集: 买家id姓名 买家id姓氏 代理id名 代理id姓氏 我知道我做得不对,但以下是我的尝试: 这一个为买方和代理返回相同的数据,这是我所期望的 从用户中选择u1.first\u name作为buyerfirst,u1.last\u name作为buyerlast,u1.first\u n

我正在尝试从同一用户数据表连接两种不同类型的用户

我有一个具有以下模式的数据库表


代理关系

  • 买方id
  • 代理id
我有一个包含用户数据的表:

使用者

  • 身份证
  • 名字
我想要的是具有以下内容的数据集:

  • 买家id姓名
  • 买家id姓氏
  • 代理id名
  • 代理id姓氏
我知道我做得不对,但以下是我的尝试:

这一个为买方和代理返回相同的数据,这是我所期望的

从用户中选择u1.first\u name作为buyerfirst,u1.last\u name作为buyerlast,u1.first\u name作为agentfirst,u1.last\u name作为代理列表u1在ar1上左加入代理关系ar1。买方id=u1.id在ar2上左加入代理关系ar2。代理id=u1.id

这个失败了


从用户u1中选择u1.first\u name作为buyerfirst,u1.last\u name作为buyerlast,u2.first\u name作为agentfirst,u2.last\u name作为agentlast从用户u1中选择,用户u2在ar1上留下加入代理关系ar1。买方id=u1.id在ar2上留下加入代理关系ar2。代理id=u2.id
用户需要两个加入。。取决于代理关系

select u1.first_name as buyerfirst
    ,u1.last_name as buyerlast
    ,u2.first_name as agentfirst
    ,u2.last_name as agentlast 
from agent_relationships ar 
left join users  u1   ar.buyer_id=u1.id 
left join users  u2   ar.agent_id=u1.id 
select BU.first_name, BU.last_name, AU.first_name, AU.last_name 
from agent_relationships 
left join users BU on buyer_id = BU.id 
left join users AU on agent_id= AU.id