我有一个关于MySQL的问题。以下是我正在努力完成的一个简短例子。我想通过加入它从另一个表中获取名字和姓氏字段,但是,我需要为我的主表中的两个不同的列执行此操作。在mysql中使用不同列加入表两次
$this->db->select('
project_id,
manager_id,
user_id,
CONCAT(users.first_name, " ", users.last_name) as manager
CONCAT(users.first_name, " ", users.last_name) as user
');
$this->db->from('projects');
$this->db->join('users', 'users.user_id = projects.manager_id');
$this->db->join('users', 'users.user_id = projects.user_id');
我不相信上面的例子会返回我期待的。我期望上面的代码将manager
和user
设置为相同的名称,表中的manager_id
和user_id
是相同的名称。我希望上面的例子有道理。有人知道我可以做到这一点吗?
我有一种感觉,解决方案可能与选择子查询有关,但我不确定如何去做这件事。
林不知道你想要什么......你想得到经理的名字?或者获得用户也是经理的项目? –
您需要使用别名来连接两次相同的表。不知道如何在codeigniter中做到这一点,也许'加入('用户作为mgr','mgr.user_id = projects.manager_id')'。然后在Select:'CONCAT(mgr.first_name,“”,mgr.last_name)中使用这个别名作为manager' – dnoeth
我不知道codeigniter,但是这个看起来和你的[case]非常相似(https://stackoverflow.com/questions/28319482 /加入同一表 - 两次为不同列)或[这一个](https://stackoverflow.com/questions/9158390/codeigniter-mysql-join-same-table-twice) –