繁体   English   中英

如果记录在一个表中,如何显示名称而不是ID?

[英]How to display name instead of id if records are in one table?

我正在使用CodeIgniter。 我有一个员工表,记录是

id |firstname | lastname | mobileno   | created_by
 2 |mnb       | nbgfv    | 1452145625 | 1
 3 |jhg       | uhgf     | 1452365478 | 2
 4 |poi       | ijuy     | 1458745632 | 2
 5 |tgf       | tgfd     | 1458745254 | 2
 6 |wer       | qwes     | 1523654512 | 2

现在,我的问题在created_by列中。 当我显示任何id值的记录时,我得到的输出像

    id |firstname | lastname | mobileno   | created_by
     3 |jhg       | uhgf     | 1452365478 | 2

但是我的预期输出

id |firstname | lastname | mobileno   | created_by
 3 |jhg       | uhgf     | 1452365478 | mnb nbgfv

我必须显示created_by的名称

我只尝试了此查询。

   $get_single_emp_record = array('id' => 3);
   $this->db->where($get_single_emp_record);
   $query = $this->db->get('tbl_employee');
   $result = $query->row();
   if($result)
   {
   return $result;
   }
   else 
   {
   return 0;
   }

您将不得不创建另一个表,也许是tbl_creator ,该表将具有id, creator_name然后在查询中将执行Join操作

我有一个提示(也许这可以为您的问题提供解决方案)。 尝试这样查询:

SELECT 
t1.id , t1.firstname , t1.lastname ,t1.mobileno, 
CONCAT(t2.firstname ," ",t2.lastname ) AS createby 
FROM tbl_employee AS t1 
JOIN tbl_employee AS t2 ON t2.id = t1.created_by
WHERE t1.id = '3'

通过上述查询,您无需创建临时表或其他附加表。 我测试过了 >>> http://sqlfiddle.com/#!9/e693cf/2/0

希望能对您有所帮助。 谢谢

暂无
暂无

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

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