简体   繁体   English

mysql从users表中连续加入2个user_ids

[英]mysql join 2 user_ids in a row from users table

There are 2 tables: 有2个表:

orders:
id   requester_id   supplyer_id  status
1    423            1           reserved
2    500            1           supplied
3    222            2           reserved
...

users
id    username  register_date
1     admin     2012-01-01
2     smith     2013-01-01
...
423   John      2012-10-11
500   Doe       2012-12-11
222   name      2012-10-13 
...

I want to join these two tables and get this as a result 我想加入这两个表并得到这个结果

id  requester_username   supplier_username  status
1   John                 admin              reserved
2   Doe                  admin              supplied
3   name                 smith              reserved

I can actually join these tables using active records like : 我实际上可以使用活动记录(例如:)连接这些表:

$this->db->select('orders.*,users.username')
   ->from('orders')
   ->join('users','users.id = orders.requester_id')
   ->get()->result();

but I dont know how to get the supplier username at the same time. 但我不知道如何同时获取supplier username

Try adding a second JOIN: 尝试添加第二个JOIN:

$this->db->select('orders.*,requesters.username,suppliers.username')
   ->from('orders')
   ->join('users AS requesters', 'requesters.id = orders.requester_id')
   ->join('users AS suppliers',  'suppliers.id  = orders.supplier_id')
   ->get()->result();

In MySql Your query should be like - 在MySql中,您的查询应类似于-

Select a.id, b.username, c.username, a.status
from orders a, users b, users c
where
a.requester_id = b.id 
And
a.supplyer_id = c.id

Thanks 谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM