Как отобразить имя вместо идентификатора, если записи находятся в одной таблице? - PullRequest
0 голосов
/ 10 ноября 2018

Я использую 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 |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;
   }

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

У меня есть подсказка (возможно, это поможет решить вашу проблему). Попробуйте запрос так:

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

Надеюсь, может помочь вам. Спасибо

0 голосов
/ 10 ноября 2018

вам нужно будет создать другую таблицу, может быть tbl_creator, которая будет иметь id, creator_name, тогда в вашем запросе вы выполните операцию соединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...