【问题标题】:mysql join 2 user_ids in a row from users tablemysql 从用户表中连续加入 2 个 user_ids
【发布时间】:2013-03-17 16:35:58
【问题描述】:

有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 
...

我想加入这两个表并得到这个结果

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

我实际上可以使用活动记录加入这些表,例如:

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

但我不知道如何同时获得supplier username

【问题讨论】:

    标签: php mysql codeigniter activerecord join


    【解决方案1】:

    尝试添加第二个 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();
    

    【讨论】:

      【解决方案2】:

      在 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
      

      谢谢

      【讨论】:

        猜你喜欢
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 2023-03-12
        • 1970-01-01
        相关资源
        最近更新 更多